mirror of
https://git.imnavajas.es/jjimenez/safekat.git
synced 2025-07-25 22:52:08 +00:00
Merge branch 'main' into fix/permisos-mensajeria-sidebar
This commit is contained in:
@ -13,8 +13,7 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace Config;
|
namespace Config;
|
||||||
|
|
||||||
use App\Entities\Usuarios\UsersEntity;
|
use App\Models\Usuarios\UserModel;
|
||||||
use App\Models\UserModel;
|
|
||||||
use CodeIgniter\Shield\Authentication\Authenticators\JWT;
|
use CodeIgniter\Shield\Authentication\Authenticators\JWT;
|
||||||
use CodeIgniter\Shield\Authentication\Passwords\ValidationRules;
|
use CodeIgniter\Shield\Authentication\Passwords\ValidationRules;
|
||||||
use CodeIgniter\Shield\Config\Auth as ShieldAuth;
|
use CodeIgniter\Shield\Config\Auth as ShieldAuth;
|
||||||
|
|||||||
@ -384,7 +384,7 @@ class Cliente extends \App\Controllers\BaseResourceController
|
|||||||
{
|
{
|
||||||
$data = ['' => lang('Basic.global.pleaseSelectA', [mb_strtolower(lang('Users.user'))])];
|
$data = ['' => lang('Basic.global.pleaseSelectA', [mb_strtolower(lang('Users.user'))])];
|
||||||
if (!is_null($selId)) :
|
if (!is_null($selId)) :
|
||||||
$userModel = model('App\Models\UserModel');
|
$userModel = model('App\Models\Usuarios\UserModel');
|
||||||
|
|
||||||
$selOption = $userModel->where('id', $selId)->findColumn('first_name');
|
$selOption = $userModel->where('id', $selId)->findColumn('first_name');
|
||||||
if (!empty($selOption)) :
|
if (!empty($selOption)) :
|
||||||
@ -414,7 +414,7 @@ class Cliente extends \App\Controllers\BaseResourceController
|
|||||||
{
|
{
|
||||||
$data = ['' => lang('Basic.global.pleaseSelectA', [mb_strtolower(lang('Users.user'))])];
|
$data = ['' => lang('Basic.global.pleaseSelectA', [mb_strtolower(lang('Users.user'))])];
|
||||||
if (!is_null($selId)) :
|
if (!is_null($selId)) :
|
||||||
$userModel = model('App\Models\UserModel');
|
$userModel = model('App\Models\Usuarios\UserModel');
|
||||||
|
|
||||||
$selOption = $userModel->where('id', $selId)->findColumn('last_name');
|
$selOption = $userModel->where('id', $selId)->findColumn('last_name');
|
||||||
if (!empty($selOption)) :
|
if (!empty($selOption)) :
|
||||||
|
|||||||
@ -5,12 +5,10 @@ use App\Models\Chat\ChatDeparmentModel;
|
|||||||
use App\Models\Chat\ChatDeparmentUserModel;
|
use App\Models\Chat\ChatDeparmentUserModel;
|
||||||
use App\Models\Usuarios\GroupModel;
|
use App\Models\Usuarios\GroupModel;
|
||||||
|
|
||||||
use App\Models\UserModel;
|
use App\Models\Usuarios\UserModel;
|
||||||
use App\Models\Usuarios\GroupsUsersModel;
|
use App\Models\Usuarios\GroupsUsersModel;
|
||||||
use App\Models\Collection;
|
use App\Models\Collection;
|
||||||
|
|
||||||
use CodeIgniter\Shield\Entities\User;
|
|
||||||
use function PHPUnit\Framework\isNull;
|
|
||||||
|
|
||||||
class Users extends \App\Controllers\GoBaseController
|
class Users extends \App\Controllers\GoBaseController
|
||||||
{
|
{
|
||||||
@ -89,8 +87,6 @@ class Users extends \App\Controllers\GoBaseController
|
|||||||
|
|
||||||
// Marcar el username como NULL
|
// Marcar el username como NULL
|
||||||
$sanitizedData = $this->sanitized($postData, true);
|
$sanitizedData = $this->sanitized($postData, true);
|
||||||
$email = $sanitizedData['email'];
|
|
||||||
unset($sanitizedData['email']);
|
|
||||||
|
|
||||||
$noException = true;
|
$noException = true;
|
||||||
|
|
||||||
@ -102,7 +98,7 @@ class Users extends \App\Controllers\GoBaseController
|
|||||||
try {
|
try {
|
||||||
|
|
||||||
// The Email is unique
|
// The Email is unique
|
||||||
if ($this->user_model->isEmailUnique($email)) {
|
if ($this->user_model->isEmailUnique($sanitizedData['email'])) {
|
||||||
|
|
||||||
// Crear el usuario si pasa la validación
|
// Crear el usuario si pasa la validación
|
||||||
$user = new \CodeIgniter\Shield\Entities\User([
|
$user = new \CodeIgniter\Shield\Entities\User([
|
||||||
@ -111,6 +107,8 @@ class Users extends \App\Controllers\GoBaseController
|
|||||||
'last_name' => $sanitizedData['last_name'],
|
'last_name' => $sanitizedData['last_name'],
|
||||||
'cliente_id' => $sanitizedData['cliente_id'],
|
'cliente_id' => $sanitizedData['cliente_id'],
|
||||||
'comments' => $sanitizedData['comments'],
|
'comments' => $sanitizedData['comments'],
|
||||||
|
'email' => $sanitizedData['email'],
|
||||||
|
'password' => $sanitizedData['password'],
|
||||||
'status' => $sanitizedData['status'] ?? 0,
|
'status' => $sanitizedData['status'] ?? 0,
|
||||||
'active' => $sanitizedData['active'] ?? 0,
|
'active' => $sanitizedData['active'] ?? 0,
|
||||||
]);
|
]);
|
||||||
|
|||||||
@ -225,7 +225,7 @@ class Facturas extends \App\Controllers\BaseResourceController
|
|||||||
['title' => lang("Facturas.facturaList"), 'route' => route_to('facturasList'), 'active' => true]
|
['title' => lang("Facturas.facturaList"), 'route' => route_to('facturasList'), 'active' => true]
|
||||||
];
|
];
|
||||||
|
|
||||||
$userModel = model('App\Models\UserModel');
|
$userModel = model('App\Models\Usuarios\UserModel');
|
||||||
$factura->created_by = $userModel->getFullName($factura->user_created_id);
|
$factura->created_by = $userModel->getFullName($factura->user_created_id);
|
||||||
$factura->updated_by = $userModel->getFullName($factura->user_updated_id);
|
$factura->updated_by = $userModel->getFullName($factura->user_updated_id);
|
||||||
$factura->created_at_footer = $factura->created_at ? date(' H:i d/m/Y', strtotime($factura->created_at)) : '';
|
$factura->created_at_footer = $factura->created_at ? date(' H:i d/m/Y', strtotime($factura->created_at)) : '';
|
||||||
|
|||||||
@ -583,7 +583,7 @@ class Pedido extends \App\Controllers\BaseResourceController
|
|||||||
$pedidoEntity->fecha_encuadernado_text = $pedidoEntity->fecha_encuadernado ? date('d/m/Y', strtotime($pedidoEntity->fecha_encuadernado)) : '';
|
$pedidoEntity->fecha_encuadernado_text = $pedidoEntity->fecha_encuadernado ? date('d/m/Y', strtotime($pedidoEntity->fecha_encuadernado)) : '';
|
||||||
$pedidoEntity->fecha_entrega_externo_text = $pedidoEntity->fecha_entrega_externo ? date('d/m/Y', strtotime($pedidoEntity->fecha_entrega_externo)) : '';
|
$pedidoEntity->fecha_entrega_externo_text = $pedidoEntity->fecha_entrega_externo ? date('d/m/Y', strtotime($pedidoEntity->fecha_entrega_externo)) : '';
|
||||||
|
|
||||||
$userModel = model('App\Models\UserModel');
|
$userModel = model('App\Models\Usuarios\UserModel');
|
||||||
$pedidoEntity->created_by = $userModel->getFullName($pedidoEntity->user_created_id);
|
$pedidoEntity->created_by = $userModel->getFullName($pedidoEntity->user_created_id);
|
||||||
$pedidoEntity->updated_by = $userModel->getFullName($pedidoEntity->user_updated_id);
|
$pedidoEntity->updated_by = $userModel->getFullName($pedidoEntity->user_updated_id);
|
||||||
$pedidoEntity->created_at_footer = $pedidoEntity->created_at ? date(' H:i d/m/Y', strtotime($pedidoEntity->created_at)) : '';
|
$pedidoEntity->created_at_footer = $pedidoEntity->created_at ? date(' H:i d/m/Y', strtotime($pedidoEntity->created_at)) : '';
|
||||||
|
|||||||
@ -234,10 +234,20 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
|
|||||||
$postData['updated_at'] = gmdate('Y-m-d H:m:s', time());
|
$postData['updated_at'] = gmdate('Y-m-d H:m:s', time());
|
||||||
|
|
||||||
$sanitizedData = $this->sanitized($postData, $nullIfEmpty);
|
$sanitizedData = $this->sanitized($postData, $nullIfEmpty);
|
||||||
|
|
||||||
// JJO
|
|
||||||
$sanitizedData['user_updated_id'] = auth()->user()->id;
|
$sanitizedData['user_updated_id'] = auth()->user()->id;
|
||||||
|
|
||||||
|
if(isset($sanitizedData['total_aceptado_revisado']) && $sanitizedData['total_aceptado_revisado'] != 0
|
||||||
|
&& $sanitizedData['total_aceptado_revisado'] != null && $sanitizedData['total_aceptado_revisado'] != ""){
|
||||||
|
$sanitizedData['aprobado_at'] = $sanitizedData['updated_at'];
|
||||||
|
$sanitizedData['aprobado_user_id'] = $sanitizedData['user_updated_id'];
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($presupuestoEntity->estado_id == 1 && isset($postData['confirmar']) && $postData['confirmar'] == 1) {
|
||||||
|
$sanitizedData['aprobado_at'] = $sanitizedData['updated_at'];
|
||||||
|
$sanitizedData['aprobado_user_id'] = $sanitizedData['user_updated_id'];
|
||||||
|
$sanitizedData['total_aceptado_revisado'] = $sanitizedData['total_presupuesto'];
|
||||||
|
}
|
||||||
|
|
||||||
if ($this->request->getPost('is_duplicado') == null) {
|
if ($this->request->getPost('is_duplicado') == null) {
|
||||||
$sanitizedData['is_duplicado'] = 0;
|
$sanitizedData['is_duplicado'] = 0;
|
||||||
}
|
}
|
||||||
@ -633,10 +643,16 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
|
|||||||
$data['resumen']['total_factor'] = is_numeric($presupuesto->total_factor) ? $presupuesto->total_factor : 0;
|
$data['resumen']['total_factor'] = is_numeric($presupuesto->total_factor) ? $presupuesto->total_factor : 0;
|
||||||
$data['resumen']['total_factor_ponderado'] = is_numeric($presupuesto->total_factor_ponderado) ? $presupuesto->total_factor_ponderado : 0;
|
$data['resumen']['total_factor_ponderado'] = is_numeric($presupuesto->total_factor_ponderado) ? $presupuesto->total_factor_ponderado : 0;
|
||||||
|
|
||||||
|
$data['total_aceptado_revisado'] = $presupuesto->total_aceptado_revisado;
|
||||||
|
$data['aprobado_by_at'] = ($presupuesto->aprobado_user_id != null)?
|
||||||
|
model('App\Models\Usuarios\UserModel')->getFullName($presupuesto->aprobado_user_id) . ', '
|
||||||
|
. date('d/m/Y H:i:s', strtotime($presupuesto->aprobado_at)):'';
|
||||||
|
|
||||||
|
|
||||||
$data['resumen']['iva_reducido'] = $presupuesto->iva_reducido;
|
$data['resumen']['iva_reducido'] = $presupuesto->iva_reducido;
|
||||||
|
|
||||||
$data['created_by'] = model('App\Models\UserModel')->getFullName($presupuesto->user_created_id);
|
$data['created_by'] = model('App\Models\Usuarios\UserModel')->getFullName($presupuesto->user_created_id);
|
||||||
$data['updated_by'] = model('App\Models\UserModel')->getFullName($presupuesto->user_update_id);
|
$data['updated_by'] = model('App\Models\Usuarios\UserModel')->getFullName($presupuesto->user_update_id);
|
||||||
$data['created_at'] = date(' H:i d/m/Y', strtotime($presupuesto->created_at));
|
$data['created_at'] = date(' H:i d/m/Y', strtotime($presupuesto->created_at));
|
||||||
$data['updated_at'] = date(' H:i d/m/Y', strtotime($presupuesto->updated_at));
|
$data['updated_at'] = date(' H:i d/m/Y', strtotime($presupuesto->updated_at));
|
||||||
|
|
||||||
|
|||||||
@ -601,7 +601,9 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
];
|
];
|
||||||
return $return_data;
|
return $return_data;
|
||||||
} else {
|
} else {
|
||||||
$return_data['eb'][$i] = round($coste_direccion->coste, 2);
|
$coste = floatval($coste_direccion->coste);
|
||||||
|
$margen = $coste * (intval($coste_direccion->margen) / 100.0);
|
||||||
|
$return_data['eb'][$i] = round($coste + $margen, 2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -657,8 +659,9 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
];
|
];
|
||||||
return $return_data;
|
return $return_data;
|
||||||
} else {
|
} else {
|
||||||
// Se añade a los costes de envío
|
$coste = floatval($coste_direccion->coste);
|
||||||
$coste_envio += $coste_direccion->coste;
|
$margen = $coste * (intval($coste_direccion->margen) / 100.0);
|
||||||
|
$coste_envio += $coste + $margen;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1101,7 +1104,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (isset($resultado_presupuesto['exception'])) {
|
} else if (isset($resultado_presupuesto['exception'])) {
|
||||||
if($this->request) {
|
if ($this->request) {
|
||||||
return $this->respond([
|
return $this->respond([
|
||||||
'error' => $resultado_presupuesto['exception'],
|
'error' => $resultado_presupuesto['exception'],
|
||||||
'file' => $resultado_presupuesto['file'],
|
'file' => $resultado_presupuesto['file'],
|
||||||
@ -1242,7 +1245,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
$resultado_presupuesto['info']['totales'][$i]['margenPapel'] +
|
$resultado_presupuesto['info']['totales'][$i]['margenPapel'] +
|
||||||
$resultado_presupuesto['info']['totales'][$i]['margen_envio']) / ($coste_total + $coste_envio) * 100.0, 2);
|
$resultado_presupuesto['info']['totales'][$i]['margen_envio']) / ($coste_total + $coste_envio) * 100.0, 2);
|
||||||
$total_pedido = round(($coste_total + $resultado_presupuesto['info']['totales'][$i]['totalServicios'] + $resultado_presupuesto['info']['totales'][$i]['margenServicios'] + $coste_envio), 2);
|
$total_pedido = round(($coste_total + $resultado_presupuesto['info']['totales'][$i]['totalServicios'] + $resultado_presupuesto['info']['totales'][$i]['margenServicios'] + $coste_envio), 2);
|
||||||
$precio_u = round( $resultado_presupuesto['precio_u'][$i], 4);
|
$precio_u = round($resultado_presupuesto['precio_u'][$i], 4);
|
||||||
|
|
||||||
array_push($tiradas_alternativas, (object) array(
|
array_push($tiradas_alternativas, (object) array(
|
||||||
'tirada' => $tirada[$i],
|
'tirada' => $tirada[$i],
|
||||||
@ -1614,7 +1617,9 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
$data['resumen']['base'] = $presupuesto->total_antes_descuento;
|
$data['resumen']['base'] = $presupuesto->total_antes_descuento;
|
||||||
$data['resumen']['total_envio'] = round(
|
$data['resumen']['total_envio'] = round(
|
||||||
floatval($presupuesto->total_coste_envios) +
|
floatval($presupuesto->total_coste_envios) +
|
||||||
floatval($presupuesto->total_margen_envios), 2);
|
floatval($presupuesto->total_margen_envios),
|
||||||
|
2
|
||||||
|
);
|
||||||
$data['resumen']['precio_unidad'] = $presupuesto->total_precio_unidad;
|
$data['resumen']['precio_unidad'] = $presupuesto->total_precio_unidad;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2207,6 +2212,8 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
return $return_data;
|
return $return_data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$cantidad_total = intval($datosPedido->tirada) + intval($datosPedido->merma);
|
||||||
|
|
||||||
// Acabado Cubierta
|
// Acabado Cubierta
|
||||||
if (intval($datos_entrada['cubierta']['acabado']) != 0) {
|
if (intval($datos_entrada['cubierta']['acabado']) != 0) {
|
||||||
|
|
||||||
@ -2215,7 +2222,8 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
|
|
||||||
foreach ($serviciosAcabado as $servicio) {
|
foreach ($serviciosAcabado as $servicio) {
|
||||||
$model = model('App\Models\Presupuestos\PresupuestoAcabadosModel');
|
$model = model('App\Models\Presupuestos\PresupuestoAcabadosModel');
|
||||||
$acabadoCubierta = $model->getPrecioTarifa(intval($servicio), $datosPedido->tirada, -1, $POD);
|
|
||||||
|
$acabadoCubierta = $model->getPrecioTarifa(intval($servicio), $cantidad_total, -1, $POD);
|
||||||
|
|
||||||
if (count($acabadoCubierta) > 0) {
|
if (count($acabadoCubierta) > 0) {
|
||||||
if ($acabadoCubierta[0]->total <= 0) {
|
if ($acabadoCubierta[0]->total <= 0) {
|
||||||
@ -2239,7 +2247,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
if ($extra_info) {
|
if ($extra_info) {
|
||||||
$totalServicios += round(floatval($acabadoCubierta[0]->total), 2);
|
$totalServicios += round(floatval($acabadoCubierta[0]->total), 2);
|
||||||
$base = round(floatval($acabadoCubierta[0]->total / (1 + $acabadoCubierta[0]->margen / 100.0)), 2);
|
$base = round(floatval($acabadoCubierta[0]->total / (1 + $acabadoCubierta[0]->margen / 100.0)), 2);
|
||||||
$base = round(floatval($base / $datosPedido->tirada), 2) * $datosPedido->tirada;
|
$base = round(floatval($base / $cantidad_total), 2) * $cantidad_total;
|
||||||
$margenServicios += round(floatval($acabadoCubierta[0]->total - $base), 2);
|
$margenServicios += round(floatval($acabadoCubierta[0]->total - $base), 2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2252,7 +2260,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
$tarifa = model('App\Models\Configuracion\ConfigVariableModel')->getVariable('id_servicio_lomo_redondo')->value;
|
$tarifa = model('App\Models\Configuracion\ConfigVariableModel')->getVariable('id_servicio_lomo_redondo')->value;
|
||||||
$resultado = PresupuestoCLienteService::getServiciosManipulado([
|
$resultado = PresupuestoCLienteService::getServiciosManipulado([
|
||||||
'tarifa_id' => intval($tarifa),
|
'tarifa_id' => intval($tarifa),
|
||||||
'tirada' => $datosPedido->tirada,
|
'tirada' => $cantidad_total,
|
||||||
'POD' => $POD,
|
'POD' => $POD,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
@ -2278,7 +2286,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
if ($extra_info) {
|
if ($extra_info) {
|
||||||
$totalServicios += round(floatval($resultado[0]->total), 2);
|
$totalServicios += round(floatval($resultado[0]->total), 2);
|
||||||
$base = round(floatval($resultado[0]->total / (1 + $resultado[0]->margen / 100.0)), 2);
|
$base = round(floatval($resultado[0]->total / (1 + $resultado[0]->margen / 100.0)), 2);
|
||||||
$base = round(floatval($base / $datosPedido->tirada), 2) * $datosPedido->tirada;
|
$base = round(floatval($base / $cantidad_total), 2) * $cantidad_total;
|
||||||
$margenServicios += round(floatval($resultado[0]->total - $base), 2);
|
$margenServicios += round(floatval($resultado[0]->total - $base), 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2348,7 +2356,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
|
|
||||||
foreach ($serviciosAcabado as $servicio) {
|
foreach ($serviciosAcabado as $servicio) {
|
||||||
$model = model('App\Models\Presupuestos\PresupuestoAcabadosModel');
|
$model = model('App\Models\Presupuestos\PresupuestoAcabadosModel');
|
||||||
$acabadoSobrecubierta = $model->getPrecioTarifa(intval($servicio), $datosPedido->tirada, -1, $POD);
|
$acabadoSobrecubierta = $model->getPrecioTarifa(intval($servicio), $cantidad_total, -1, $POD);
|
||||||
|
|
||||||
if (count($acabadoSobrecubierta) > 0) {
|
if (count($acabadoSobrecubierta) > 0) {
|
||||||
|
|
||||||
@ -2374,7 +2382,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
if ($extra_info) {
|
if ($extra_info) {
|
||||||
$totalServicios += round(floatval($acabadoSobrecubierta[0]->total), 2);
|
$totalServicios += round(floatval($acabadoSobrecubierta[0]->total), 2);
|
||||||
$base = round(floatval($acabadoSobrecubierta[0]->total / (1 + $acabadoSobrecubierta[0]->margen / 100.0)), 2);
|
$base = round(floatval($acabadoSobrecubierta[0]->total / (1 + $acabadoSobrecubierta[0]->margen / 100.0)), 2);
|
||||||
$base = round(floatval($base / $datosPedido->tirada), 2) * $datosPedido->tirada;
|
$base = round(floatval($base / $cantidad_total), 2) * $cantidad_total;
|
||||||
$margenServicios += round(floatval($acabadoSobrecubierta[0]->total - $base), 2);
|
$margenServicios += round(floatval($acabadoSobrecubierta[0]->total - $base), 2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2506,7 +2514,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
|
|
||||||
foreach ($serviciosAcabado as $servicio)
|
foreach ($serviciosAcabado as $servicio)
|
||||||
$model = model('App\Models\Presupuestos\PresupuestoAcabadosModel');
|
$model = model('App\Models\Presupuestos\PresupuestoAcabadosModel');
|
||||||
$acabadoFaja = $model->getPrecioTarifa(intval($servicio), $datosPedido->tirada, -1, $POD);
|
$acabadoFaja = $model->getPrecioTarifa(intval($servicio), $cantidad_total, -1, $POD);
|
||||||
|
|
||||||
if (count($acabadoFaja) > 0) {
|
if (count($acabadoFaja) > 0) {
|
||||||
|
|
||||||
@ -2532,7 +2540,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
if ($extra_info) {
|
if ($extra_info) {
|
||||||
$totalServicios += round(floatval($acabadoFaja[0]->total), 2);
|
$totalServicios += round(floatval($acabadoFaja[0]->total), 2);
|
||||||
$base = round(floatval($acabadoFaja[0]->total / (1 + $acabadoFaja[0]->margen / 100.0)), 2);
|
$base = round(floatval($acabadoFaja[0]->total / (1 + $acabadoFaja[0]->margen / 100.0)), 2);
|
||||||
$base = round(floatval($base / $datosPedido->tirada), 2) * $datosPedido->tirada;
|
$base = round(floatval($base / $cantidad_total), 2) * $cantidad_total;
|
||||||
$margenServicios += round(floatval($acabadoFaja[0]->total - $base), 2);
|
$margenServicios += round(floatval($acabadoFaja[0]->total - $base), 2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2552,7 +2560,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
$costeServiciosDefecto = 0.0;
|
$costeServiciosDefecto = 0.0;
|
||||||
$servDefectoEnc = PresupuestoCLienteService::getServiciosEncuadernacionDefault([
|
$servDefectoEnc = PresupuestoCLienteService::getServiciosEncuadernacionDefault([
|
||||||
'tipo_impresion_id' => $tipo_impresion_id,
|
'tipo_impresion_id' => $tipo_impresion_id,
|
||||||
'tirada' => $datosPedido->tirada,
|
'tirada' => $cantidad_total,
|
||||||
'paginas' => intval($paginas) ?? 0,
|
'paginas' => intval($paginas) ?? 0,
|
||||||
'ancho' => $datosPedido->ancho,
|
'ancho' => $datosPedido->ancho,
|
||||||
'alto' => $datosPedido->alto,
|
'alto' => $datosPedido->alto,
|
||||||
@ -2586,14 +2594,14 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
if ($extra_info) {
|
if ($extra_info) {
|
||||||
$totalServicios += round(floatval($servicio->total), 2);
|
$totalServicios += round(floatval($servicio->total), 2);
|
||||||
$base = round(floatval($servicio->total / (1 + $servicio->margen / 100.0)), 2);
|
$base = round(floatval($servicio->total / (1 + $servicio->margen / 100.0)), 2);
|
||||||
$base = round(floatval($base / $datosPedido->tirada), 2) * $datosPedido->tirada;
|
$base = round(floatval($base / $cantidad_total), 2) * $cantidad_total;
|
||||||
$margenServicios += round(floatval($servicio->total - $base), 2);
|
$margenServicios += round(floatval($servicio->total - $base), 2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$servDefectoMan = PresupuestoCLienteService::getServiciosManipuladoDefault([
|
$servDefectoMan = PresupuestoCLienteService::getServiciosManipuladoDefault([
|
||||||
'tipo_impresion_id' => $tipo_impresion_id,
|
'tipo_impresion_id' => $tipo_impresion_id,
|
||||||
'tirada' => $datosPedido->tirada,
|
'tirada' => $cantidad_total,
|
||||||
'POD' => $POD,
|
'POD' => $POD,
|
||||||
'solapas' => intval($solapasCubierta) > 0 ? 1 : 0,
|
'solapas' => intval($solapasCubierta) > 0 ? 1 : 0,
|
||||||
]);
|
]);
|
||||||
@ -2623,7 +2631,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
if ($extra_info) {
|
if ($extra_info) {
|
||||||
$totalServicios += round(floatval($servicio->total), 2);
|
$totalServicios += round(floatval($servicio->total), 2);
|
||||||
$base = round(floatval($servicio->total / (1 + $servicio->margen / 100.0)), 2);
|
$base = round(floatval($servicio->total / (1 + $servicio->margen / 100.0)), 2);
|
||||||
$base = round(floatval($base / $datosPedido->tirada), 2) * $datosPedido->tirada;
|
$base = round(floatval($base / $cantidad_total), 2) * $cantidad_total;
|
||||||
$margenServicios += round(floatval($servicio->total - $base), 2);
|
$margenServicios += round(floatval($servicio->total - $base), 2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2702,7 +2710,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
// Servicios acabado
|
// Servicios acabado
|
||||||
$resultado = PresupuestoCLienteService::getServiciosAcabados([
|
$resultado = PresupuestoCLienteService::getServiciosAcabados([
|
||||||
'tarifa_id' => intval($servicio->id),
|
'tarifa_id' => intval($servicio->id),
|
||||||
'tirada' => $datosPedido->tirada,
|
'tirada' => $cantidad_total,
|
||||||
'POD' => $POD,
|
'POD' => $POD,
|
||||||
]);
|
]);
|
||||||
array_push($serviciosAutomaticos, $resultado[0]);
|
array_push($serviciosAutomaticos, $resultado[0]);
|
||||||
@ -2728,7 +2736,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
if ($extra_info) {
|
if ($extra_info) {
|
||||||
$totalServicios += round(floatval($resultado[0]->total), 2);
|
$totalServicios += round(floatval($resultado[0]->total), 2);
|
||||||
$base = round(floatval($resultado[0]->total / (1 + $resultado[0]->margen / 100.0)), 2);
|
$base = round(floatval($resultado[0]->total / (1 + $resultado[0]->margen / 100.0)), 2);
|
||||||
$base = round(floatval($base / $datosPedido->tirada), 2) * $datosPedido->tirada;
|
$base = round(floatval($base / $cantidad_total), 2) * $cantidad_total;
|
||||||
$margenServicios += round(floatval($resultado[0]->total - $base), 2);
|
$margenServicios += round(floatval($resultado[0]->total - $base), 2);
|
||||||
}
|
}
|
||||||
} else if ($servicio->nombre == "ferro" || $servicio->nombre == "prototipo") {
|
} else if ($servicio->nombre == "ferro" || $servicio->nombre == "prototipo") {
|
||||||
@ -2760,14 +2768,14 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
if ($extra_info) {
|
if ($extra_info) {
|
||||||
$totalServicios += round(floatval($resultado[0]->precio), 2);
|
$totalServicios += round(floatval($resultado[0]->precio), 2);
|
||||||
$base = round(floatval($resultado[0]->total / (1 + $resultado[0]->margen / 100.0)), 2);
|
$base = round(floatval($resultado[0]->total / (1 + $resultado[0]->margen / 100.0)), 2);
|
||||||
$base = round(floatval($base / $datosPedido->tirada), 2) * $datosPedido->tirada;
|
$base = round(floatval($base / $cantidad_total), 2) * $cantidad_total;
|
||||||
$margenServicios += round(floatval($resultado[0]->total - $base), 2);
|
$margenServicios += round(floatval($resultado[0]->total - $base), 2);
|
||||||
}
|
}
|
||||||
} else if ($servicio->nombre == 'solapas_cubierta' || $servicio->nombre == 'solapas_sobrecubierta' || $servicio->nombre == 'solapas_faja') {
|
} else if ($servicio->nombre == 'solapas_cubierta' || $servicio->nombre == 'solapas_sobrecubierta' || $servicio->nombre == 'solapas_faja') {
|
||||||
// Servicios manipulado
|
// Servicios manipulado
|
||||||
$resultado = PresupuestoCLienteService::getServiciosManipulado([
|
$resultado = PresupuestoCLienteService::getServiciosManipulado([
|
||||||
'tarifa_id' => intval($servicio->id),
|
'tarifa_id' => intval($servicio->id),
|
||||||
'tirada' => $datosPedido->tirada,
|
'tirada' => $cantidad_total,
|
||||||
'POD' => $POD,
|
'POD' => $POD,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
@ -2794,7 +2802,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
if ($extra_info) {
|
if ($extra_info) {
|
||||||
$totalServicios += round(floatval($resultado[0]->total), 2);
|
$totalServicios += round(floatval($resultado[0]->total), 2);
|
||||||
$base = round(floatval($resultado[0]->total / (1 + $resultado[0]->margen / 100.0)), 2);
|
$base = round(floatval($resultado[0]->total / (1 + $resultado[0]->margen / 100.0)), 2);
|
||||||
$base = round(floatval($base / $datosPedido->tirada), 2) * $datosPedido->tirada;
|
$base = round(floatval($base / $cantidad_total), 2) * $cantidad_total;
|
||||||
$margenServicios += round(floatval($resultado[0]->total - $base), 2);
|
$margenServicios += round(floatval($resultado[0]->total - $base), 2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2835,7 +2843,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
if ($extra_info) {
|
if ($extra_info) {
|
||||||
$totalServicios += round(floatval($resultado[0]->precio), 2);
|
$totalServicios += round(floatval($resultado[0]->precio), 2);
|
||||||
$base = round(floatval($resultado[0]->precio / (1 + $resultado[0]->margen / 100.0)), 2);
|
$base = round(floatval($resultado[0]->precio / (1 + $resultado[0]->margen / 100.0)), 2);
|
||||||
$base = round(floatval($base / $datosPedido->tirada), 2) * $datosPedido->tirada;
|
$base = round(floatval($base / $cantidad_total), 2) * $cantidad_total;
|
||||||
$margenServicios += round(floatval($resultado[0]->precio - $base), 2);
|
$margenServicios += round(floatval($resultado[0]->precio - $base), 2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2847,7 +2855,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
// Servicios manipulado
|
// Servicios manipulado
|
||||||
$resultado = PresupuestoCLienteService::getServiciosManipulado([
|
$resultado = PresupuestoCLienteService::getServiciosManipulado([
|
||||||
'tarifa_id' => intval($servicio_solapas_grandes_cubierta->id),
|
'tarifa_id' => intval($servicio_solapas_grandes_cubierta->id),
|
||||||
'tirada' => $datosPedido->tirada,
|
'tirada' => $cantidad_total,
|
||||||
'POD' => $POD,
|
'POD' => $POD,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
@ -2874,7 +2882,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
if ($extra_info) {
|
if ($extra_info) {
|
||||||
$totalServicios += round(floatval($resultado[0]->total), 2);
|
$totalServicios += round(floatval($resultado[0]->total), 2);
|
||||||
$base = round(floatval($resultado[0]->total / (1 + $resultado[0]->margen / 100.0)), 2);
|
$base = round(floatval($resultado[0]->total / (1 + $resultado[0]->margen / 100.0)), 2);
|
||||||
$base = round(floatval($base / $datosPedido->tirada), 2) * $datosPedido->tirada;
|
$base = round(floatval($base / $cantidad_total), 2) * $cantidad_total;
|
||||||
$margenServicios += round(floatval($resultado[0]->total - $base), 2);
|
$margenServicios += round(floatval($resultado[0]->total - $base), 2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2884,7 +2892,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
// Servicios manipulado
|
// Servicios manipulado
|
||||||
$resultado = PresupuestoCLienteService::getServiciosManipulado([
|
$resultado = PresupuestoCLienteService::getServiciosManipulado([
|
||||||
'tarifa_id' => intval($servicio_solapas_grandes_sobrecubierta->id),
|
'tarifa_id' => intval($servicio_solapas_grandes_sobrecubierta->id),
|
||||||
'tirada' => $datosPedido->tirada,
|
'tirada' => $cantidad_total,
|
||||||
'POD' => $POD,
|
'POD' => $POD,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
@ -2911,7 +2919,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
if ($extra_info) {
|
if ($extra_info) {
|
||||||
$totalServicios += round(floatval($resultado[0]->total), 2);
|
$totalServicios += round(floatval($resultado[0]->total), 2);
|
||||||
$base = round(floatval($resultado[0]->total / (1 + $resultado[0]->margen / 100.0)), 2);
|
$base = round(floatval($resultado[0]->total / (1 + $resultado[0]->margen / 100.0)), 2);
|
||||||
$base = round(floatval($base / $datosPedido->tirada), 2) * $datosPedido->tirada;
|
$base = round(floatval($base / $cantidad_total), 2) * $cantidad_total;
|
||||||
$margenServicios += round(floatval($resultado[0]->total - $base), 2);
|
$margenServicios += round(floatval($resultado[0]->total - $base), 2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2921,7 +2929,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
// Servicios manipulado
|
// Servicios manipulado
|
||||||
$resultado = PresupuestoCLienteService::getServiciosManipulado([
|
$resultado = PresupuestoCLienteService::getServiciosManipulado([
|
||||||
'tarifa_id' => intval($servicio_solapas_grandes_faja->id),
|
'tarifa_id' => intval($servicio_solapas_grandes_faja->id),
|
||||||
'tirada' => $datosPedido->tirada,
|
'tirada' => $cantidad_total,
|
||||||
'POD' => $POD,
|
'POD' => $POD,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
@ -2948,7 +2956,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
|
|||||||
if ($extra_info) {
|
if ($extra_info) {
|
||||||
$totalServicios += round(floatval($resultado[0]->total), 2);
|
$totalServicios += round(floatval($resultado[0]->total), 2);
|
||||||
$base = round(floatval($resultado[0]->total / (1 + $resultado[0]->margen / 100.0)), 2);
|
$base = round(floatval($resultado[0]->total / (1 + $resultado[0]->margen / 100.0)), 2);
|
||||||
$base = round(floatval($base / $datosPedido->tirada), 2) * $datosPedido->tirada;
|
$base = round(floatval($base / $cantidad_total), 2) * $cantidad_total;
|
||||||
$margenServicios += round(floatval($resultado[0]->total - $base), 2);
|
$margenServicios += round(floatval($resultado[0]->total - $base), 2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
namespace App\Controllers;
|
namespace App\Controllers;
|
||||||
|
|
||||||
|
|
||||||
use App\Models\UserModel;
|
use App\Models\Usuarios\UserModel;
|
||||||
|
|
||||||
class Profile extends BaseController
|
class Profile extends BaseController
|
||||||
{
|
{
|
||||||
|
|||||||
@ -109,7 +109,7 @@ class Ticketcontroller extends \App\Controllers\BaseResourceController
|
|||||||
|
|
||||||
$message = lang('Basic.global.saveSuccess', [lang('Basic.global.record')]) . '.';
|
$message = lang('Basic.global.saveSuccess', [lang('Basic.global.record')]) . '.';
|
||||||
|
|
||||||
$userModel = new \App\Models\UserModel();
|
$userModel = new \App\Models\Usuarios\UserModel();
|
||||||
|
|
||||||
$this->sendMail(lang('Tickets.newTicket'), lang('Tickets.newTicketBody') . base_url(route_to('editTicket', $id)), $userModel->find($sanitizedData['user_soporte_id'])->email);
|
$this->sendMail(lang('Tickets.newTicket'), lang('Tickets.newTicketBody') . base_url(route_to('editTicket', $id)), $userModel->find($sanitizedData['user_soporte_id'])->email);
|
||||||
|
|
||||||
@ -198,7 +198,7 @@ class Ticketcontroller extends \App\Controllers\BaseResourceController
|
|||||||
}
|
}
|
||||||
|
|
||||||
// envio de correos
|
// envio de correos
|
||||||
$userModel = new \App\Models\UserModel();
|
$userModel = new \App\Models\Usuarios\UserModel();
|
||||||
if ($oldUserSupport != $sanitizedData['user_soporte_id']) {
|
if ($oldUserSupport != $sanitizedData['user_soporte_id']) {
|
||||||
$this->sendMail(lang('Tickets.asgignToChanged'), lang('Tickets.asgignToChangedBody') . base_url(route_to('editTicket', $id)), $userModel->find($sanitizedData['user_soporte_id'])->email);
|
$this->sendMail(lang('Tickets.asgignToChanged'), lang('Tickets.asgignToChangedBody') . base_url(route_to('editTicket', $id)), $userModel->find($sanitizedData['user_soporte_id'])->email);
|
||||||
}
|
}
|
||||||
@ -382,15 +382,15 @@ class Ticketcontroller extends \App\Controllers\BaseResourceController
|
|||||||
$supportUsers = array(
|
$supportUsers = array(
|
||||||
array(
|
array(
|
||||||
'id' => $defatulSoporteUserId,
|
'id' => $defatulSoporteUserId,
|
||||||
'name' => model('App\Models\UserModel')->getFullName($defatulSoporteUserId)
|
'name' => model('App\Models\Usuarios\UserModel')->getFullName($defatulSoporteUserId)
|
||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
'id' => 2,
|
'id' => 2,
|
||||||
'name' => model('App\Models\UserModel')->getFullName(2)
|
'name' => model('App\Models\Usuarios\UserModel')->getFullName(2)
|
||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
'id' => 1,
|
'id' => 1,
|
||||||
'name' => model('App\Models\UserModel')->getFullName(1)
|
'name' => model('App\Models\Usuarios\UserModel')->getFullName(1)
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@ -0,0 +1,25 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Database\Migrations;
|
||||||
|
|
||||||
|
use CodeIgniter\Database\Migration;
|
||||||
|
|
||||||
|
class AddTotalAceptadoRevisadoToPresupuestos extends Migration
|
||||||
|
{
|
||||||
|
public function up()
|
||||||
|
{
|
||||||
|
$this->forge->addColumn('presupuestos', [
|
||||||
|
'total_aceptado_revisado' => [
|
||||||
|
'type' => 'FLOAT',
|
||||||
|
'null' => true,
|
||||||
|
'default' => null,
|
||||||
|
'after' => 'total_aceptado' // Opcional: reemplazar con la última columna actual
|
||||||
|
],
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function down()
|
||||||
|
{
|
||||||
|
$this->forge->dropColumn('presupuestos', 'total_aceptado_revisado');
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -100,6 +100,7 @@ class PresupuestoEntity extends \CodeIgniter\Entity\Entity
|
|||||||
"total_factor" => null,
|
"total_factor" => null,
|
||||||
"total_factor_ponderado" => null,
|
"total_factor_ponderado" => null,
|
||||||
'total_aceptado' => null,
|
'total_aceptado' => null,
|
||||||
|
'total_aceptado_revisado' => null,
|
||||||
'iva_reducido' => null,
|
'iva_reducido' => null,
|
||||||
'excluir_rotativa' => null,
|
'excluir_rotativa' => null,
|
||||||
"acabado_cubierta_id" => null,
|
"acabado_cubierta_id" => null,
|
||||||
@ -173,6 +174,7 @@ class PresupuestoEntity extends \CodeIgniter\Entity\Entity
|
|||||||
"total_factor" => "?float",
|
"total_factor" => "?float",
|
||||||
"total_factor_ponderado" => "?float",
|
"total_factor_ponderado" => "?float",
|
||||||
'total_aceptado' => "?float",
|
'total_aceptado' => "?float",
|
||||||
|
'total_aceptado_revisado' => "?float",
|
||||||
'iva_reducido' => "?boolean",
|
'iva_reducido' => "?boolean",
|
||||||
'excluir_rotativa' => "?boolean",
|
'excluir_rotativa' => "?boolean",
|
||||||
"acabado_cubierta_id" => "int",
|
"acabado_cubierta_id" => "int",
|
||||||
|
|||||||
@ -1,11 +1,10 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace App\Entities\Usuarios;
|
namespace App\Entities\Usuarios;
|
||||||
|
|
||||||
use App\Entities\Chat\ChatNotificationEntity;
|
|
||||||
use App\Models\ChatNotification;
|
use App\Models\ChatNotification;
|
||||||
use CodeIgniter\Entity;
|
use CodeIgniter\Shield\Entities\User;
|
||||||
|
|
||||||
class UserEntity extends \CodeIgniter\Entity\Entity
|
class UserEntity extends User
|
||||||
{
|
{
|
||||||
protected $attributes = [
|
protected $attributes = [
|
||||||
"id" => null,
|
"id" => null,
|
||||||
@ -20,7 +19,6 @@ class UserEntity extends \CodeIgniter\Entity\Entity
|
|||||||
"created_at" => null,
|
"created_at" => null,
|
||||||
"updated_at" => null,
|
"updated_at" => null,
|
||||||
"deleted_at" => null,
|
"deleted_at" => null,
|
||||||
|
|
||||||
];
|
];
|
||||||
protected $casts = [
|
protected $casts = [
|
||||||
"id" => "int",
|
"id" => "int",
|
||||||
@ -73,4 +71,6 @@ class UserEntity extends \CodeIgniter\Entity\Entity
|
|||||||
$m = model(ChatNotification::class);
|
$m = model(ChatNotification::class);
|
||||||
return $m->where('user_id',$this->attributes['id'])->findAll() ?? [];
|
return $m->where('user_id',$this->attributes['id'])->findAll() ?? [];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,30 +0,0 @@
|
|||||||
<?php
|
|
||||||
namespace App\Entities\Usuarios;
|
|
||||||
|
|
||||||
use CodeIgniter\Shield\Entities\User;
|
|
||||||
|
|
||||||
class UsersEntity extends User
|
|
||||||
{
|
|
||||||
protected $attributes = [
|
|
||||||
'first_name' => null,
|
|
||||||
'last_name'=> null,
|
|
||||||
'cliente_id' => null,
|
|
||||||
'comments' => null,
|
|
||||||
];
|
|
||||||
protected $casts = [
|
|
||||||
"cliente_id" => "int",
|
|
||||||
];
|
|
||||||
|
|
||||||
public function getFullName()
|
|
||||||
{
|
|
||||||
$firstName = trim($this->attributes["first_name"] ?? "");
|
|
||||||
$lastName = trim($this->attributes["last_name"] ?? "");
|
|
||||||
$fullName = $firstName . ' ' . $lastName;
|
|
||||||
$fullName = trim($fullName); // In case first name is empty, this will remove the leading space
|
|
||||||
|
|
||||||
// Use the username attribute if the full name is still empty after trimming
|
|
||||||
return $fullName ?: $this->attributes["username"];
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -23,7 +23,7 @@ class ClienteUsuariosModel extends ShieldUserModel
|
|||||||
];
|
];
|
||||||
|
|
||||||
protected $allowedFields = ["id", "first_name", "last_name", "email"];
|
protected $allowedFields = ["id", "first_name", "last_name", "email"];
|
||||||
protected $returnType = "App\Entities\Usuarios\UsersEntity";
|
protected $returnType = "App\Entities\Usuarios\UserEntity";
|
||||||
|
|
||||||
protected $useTimestamps = true;
|
protected $useTimestamps = true;
|
||||||
protected $useSoftDeletes = false;
|
protected $useSoftDeletes = false;
|
||||||
|
|||||||
@ -74,6 +74,7 @@ class PresupuestoDireccionesModel extends \App\Models\BaseModel
|
|||||||
|
|
||||||
$builder->where('t1.presupuesto_id', $presupuesto_id);
|
$builder->where('t1.presupuesto_id', $presupuesto_id);
|
||||||
$builder->join("lg_paises t2", "t1.pais_id = t2.id", "left");
|
$builder->join("lg_paises t2", "t1.pais_id = t2.id", "left");
|
||||||
|
$builder->orderBy('t1.id', 'DESC');
|
||||||
|
|
||||||
return empty($search)
|
return empty($search)
|
||||||
? $builder
|
? $builder
|
||||||
|
|||||||
@ -119,6 +119,7 @@ class PresupuestoModel extends \App\Models\BaseModel
|
|||||||
"total_descuento",
|
"total_descuento",
|
||||||
"total_descuentoPercent",
|
"total_descuentoPercent",
|
||||||
"total_presupuesto",
|
"total_presupuesto",
|
||||||
|
"total_aceptado_revisado",
|
||||||
"total_precio_unidad",
|
"total_precio_unidad",
|
||||||
"total_factor",
|
"total_factor",
|
||||||
"total_factor_ponderado",
|
"total_factor_ponderado",
|
||||||
|
|||||||
@ -1,153 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
declare(strict_types=1);
|
|
||||||
|
|
||||||
namespace App\Models;
|
|
||||||
|
|
||||||
use App\Entities\Usuarios\UsersEntity;
|
|
||||||
use CodeIgniter\Shield\Authentication\Traits\HasAccessTokens;
|
|
||||||
use CodeIgniter\Shield\Models\UserModel as ShieldUserModel;
|
|
||||||
|
|
||||||
class UserModel extends ShieldUserModel
|
|
||||||
{
|
|
||||||
use HasAccessTokens;
|
|
||||||
|
|
||||||
protected function initialize(): void
|
|
||||||
{
|
|
||||||
parent::initialize();
|
|
||||||
|
|
||||||
$this->allowedFields = [
|
|
||||||
...$this->allowedFields,
|
|
||||||
'first_name', // Añadido
|
|
||||||
'last_name', // Añadido
|
|
||||||
'cliente_id', // Añadido
|
|
||||||
'comments', // Añadido
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
const SORTABLE = [
|
|
||||||
0 => "t1.id",
|
|
||||||
1 => "t1.first_name",
|
|
||||||
2 => "t1.last_name",
|
|
||||||
3 => "t2.secret",
|
|
||||||
4 => "t3.nombre",
|
|
||||||
5 => "t1.last_active",
|
|
||||||
];
|
|
||||||
|
|
||||||
protected $returnType = UsersEntity::class;
|
|
||||||
|
|
||||||
protected $useSoftDeletes = true;
|
|
||||||
protected $useTimestamps = true;
|
|
||||||
protected $createdField = 'created_at';
|
|
||||||
protected $updatedField = 'updated_at';
|
|
||||||
protected $deletedField = 'deleted_at';
|
|
||||||
|
|
||||||
protected $validationRules = [
|
|
||||||
"first_name" => "required|trim|max_length[150]",
|
|
||||||
"last_name" => "required|trim|max_length[150]",
|
|
||||||
"email" => "required|valid_email|max_length[150]",
|
|
||||||
'new_pwd' => 'permit_empty|min_length[8]',
|
|
||||||
'new_pwd_confirm' => 'permit_empty|required_with[new_pwd]|matches[new_pwd]',
|
|
||||||
"comments" => "permit_empty|trim|max_length[512]"
|
|
||||||
];
|
|
||||||
|
|
||||||
protected $validationMessages = [
|
|
||||||
'first_name' => [
|
|
||||||
"max_length" => "Users.validation.first_name.max_length",
|
|
||||||
"required" => "Users.validation.first_name.required"
|
|
||||||
],
|
|
||||||
'last_name' => [
|
|
||||||
"max_length" => "Users.validation.last_name.max_length",
|
|
||||||
"required" => "Users.validation.last_name.required"
|
|
||||||
],
|
|
||||||
'new_pwd' => [
|
|
||||||
'min_length' => "App.profile_rules_password_m"
|
|
||||||
],
|
|
||||||
'new_pwd_confirm' => [
|
|
||||||
'matches' => "App.profile_rules_password_confirm_m"
|
|
||||||
],
|
|
||||||
'comments' => [
|
|
||||||
"max_length" => "Users.validation.last_name.max_length",
|
|
||||||
],
|
|
||||||
'email' => [
|
|
||||||
"required" => "Users.validation.email.required",
|
|
||||||
"valid_email" => "Users.validation.email.valid_email",
|
|
||||||
"max_length" => "Users.validation.email.max_length"
|
|
||||||
]
|
|
||||||
|
|
||||||
];
|
|
||||||
|
|
||||||
public function getResource($search = [])
|
|
||||||
{
|
|
||||||
$builder = $this->db
|
|
||||||
->table($this->table . " t1")
|
|
||||||
->select(
|
|
||||||
"t1.id as id, t1.first_name AS first_name, t1.last_name AS last_name,
|
|
||||||
t2.secret AS email, t1.last_active AS last_active, t3.nombre AS cliente"
|
|
||||||
);
|
|
||||||
|
|
||||||
$builder->join("auth_identities t2", "t1.id = t2.user_id", "left");
|
|
||||||
$builder->join("clientes t3", "t1.cliente_id = t3.id", "left");
|
|
||||||
|
|
||||||
$builder->where('t1.deleted_at', null)->groupBy("t1.id");
|
|
||||||
|
|
||||||
if (empty($search))
|
|
||||||
return $builder;
|
|
||||||
else {
|
|
||||||
$builder->groupStart();
|
|
||||||
foreach ($search as $col_search) {
|
|
||||||
$column = self::SORTABLE[$col_search[0]];
|
|
||||||
$value = $col_search[2];
|
|
||||||
$builder->where("LOWER(CONVERT($column USING utf8)) COLLATE utf8_general_ci LIKE", "%" . strtolower($value) . "%");
|
|
||||||
}
|
|
||||||
$builder->groupEnd();
|
|
||||||
return $builder;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getComerciales()
|
|
||||||
{
|
|
||||||
|
|
||||||
$builder = $this->db
|
|
||||||
->table("users" . " t1")
|
|
||||||
->select(
|
|
||||||
"t1.id AS id, CONCAT(t1.first_name, ' ', t1.last_name) AS name"
|
|
||||||
);
|
|
||||||
|
|
||||||
$builder->where('t1.deleted_at', null);
|
|
||||||
$builder->where("t2.group", "comercial");
|
|
||||||
$builder->join("auth_groups_users t2", "t1.id = t2.user_id", "left");
|
|
||||||
|
|
||||||
return $builder->get()->getResult();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getFullName($id=0){
|
|
||||||
$builder = $this->db
|
|
||||||
->table("users" . " t1")
|
|
||||||
->select(
|
|
||||||
"CONCAT(t1.first_name, ' ', t1.last_name) AS name"
|
|
||||||
);
|
|
||||||
|
|
||||||
$builder->where('t1.deleted_at', null);
|
|
||||||
$builder->where('t1.id', $id);
|
|
||||||
|
|
||||||
return $builder->get()->getRow()->name;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Método para comprobar si el email ya está registrado
|
|
||||||
public function isEmailUnique($email)
|
|
||||||
{
|
|
||||||
$builder = $this->db
|
|
||||||
->table("auth_identities t1") // La tabla correcta
|
|
||||||
->select("t1.secret AS email")
|
|
||||||
->where('secret', $email);
|
|
||||||
|
|
||||||
// Obtener resultados
|
|
||||||
$result = $builder->get()->getRow();
|
|
||||||
|
|
||||||
// Devuelve true si no se encuentra el correo (es único), false en caso contrario
|
|
||||||
return $result === null;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -1,81 +1,154 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace App\Models\Usuarios;
|
namespace App\Models\Usuarios;
|
||||||
|
|
||||||
class UserModel extends \App\Models\BaseModel
|
use CodeIgniter\Shield\Authentication\Traits\HasAccessTokens;
|
||||||
|
use CodeIgniter\Shield\Models\UserModel as ShieldUserModel;
|
||||||
|
use App\Entities\Usuarios\UserEntity;
|
||||||
|
|
||||||
|
class UserModel extends ShieldUserModel
|
||||||
{
|
{
|
||||||
protected $table = "users";
|
use HasAccessTokens;
|
||||||
|
|
||||||
/**
|
protected function initialize(): void
|
||||||
* Whether primary key uses auto increment.
|
{
|
||||||
*
|
parent::initialize();
|
||||||
* @var bool
|
|
||||||
*/
|
|
||||||
protected $useAutoIncrement = true;
|
|
||||||
protected $useTimestamps = true;
|
|
||||||
protected $dateFormat = 'datetime';
|
|
||||||
protected $createdField = 'created_at';
|
|
||||||
protected $updatedField = 'updated_at';
|
|
||||||
|
|
||||||
protected $primaryKey = "id";
|
$this->allowedFields = [
|
||||||
|
...$this->allowedFields,
|
||||||
|
'first_name', // Añadido
|
||||||
|
'last_name', // Añadido
|
||||||
|
'cliente_id', // Añadido
|
||||||
|
'comments', // Añadido
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
protected $allowedFields = [
|
const SORTABLE = [
|
||||||
"username",
|
0 => "t1.id",
|
||||||
"first_name",
|
1 => "t1.first_name",
|
||||||
"last_name",
|
2 => "t1.last_name",
|
||||||
"client_id",
|
3 => "t2.secret",
|
||||||
"status",
|
4 => "t3.nombre",
|
||||||
"status_message",
|
5 => "t1.last_active",
|
||||||
"active",
|
|
||||||
"comments",
|
|
||||||
"last_active",
|
|
||||||
"created_at",
|
|
||||||
"updated_at",
|
|
||||||
"deleted_at",
|
|
||||||
];
|
];
|
||||||
protected $returnType = "App\Entities\Usuarios\UserEntity";
|
|
||||||
|
|
||||||
public static $labelField = "first_name";
|
protected $returnType = UserEntity::class;
|
||||||
|
|
||||||
|
protected $useSoftDeletes = true;
|
||||||
|
protected $useTimestamps = true;
|
||||||
|
protected $createdField = 'created_at';
|
||||||
|
protected $updatedField = 'updated_at';
|
||||||
|
protected $deletedField = 'deleted_at';
|
||||||
|
|
||||||
protected $validationRules = [
|
protected $validationRules = [
|
||||||
"first_name" => [
|
"first_name" => [
|
||||||
"label" => "Users.firstName",
|
"label" => "Users.firstName",
|
||||||
"rules" => "trim|max_length[150]",
|
"rules" => "required|trim|max_length[150]",
|
||||||
],
|
],
|
||||||
"last_name" => [
|
"last_name" => [
|
||||||
"label" => "Users.lastName",
|
"label" => "Users.lastName",
|
||||||
"rules" => "trim|max_length[150]",
|
"rules" => "required|trim|max_length[150]",
|
||||||
],
|
],
|
||||||
|
'new_pwd' => 'permit_empty|min_length[8]',
|
||||||
|
'new_pwd_confirm' => 'permit_empty|required_with[new_pwd]|matches[new_pwd]',
|
||||||
|
"comments" => "permit_empty|trim|max_length[512]"
|
||||||
];
|
];
|
||||||
|
|
||||||
protected $validationMessages = [
|
protected $validationMessages = [
|
||||||
"first_name" => [
|
'first_name' => [
|
||||||
"max_length" => "Users.validation.first_name.max_length",
|
"max_length" => "Users.validation.first_name.max_length",
|
||||||
"required" => "Users.validation.first_name.required",
|
"required" => "Users.validation.first_name.required"
|
||||||
],
|
],
|
||||||
"last_name" => [
|
'last_name' => [
|
||||||
"max_length" => "Users.validation.last_name.max_length",
|
"max_length" => "Users.validation.last_name.max_length",
|
||||||
"required" => "Users.validation.last_name.required",
|
"required" => "Users.validation.last_name.required"
|
||||||
],
|
],
|
||||||
|
'new_pwd' => [
|
||||||
|
'min_length' => "App.profile_rules_password_m"
|
||||||
|
],
|
||||||
|
'new_pwd_confirm' => [
|
||||||
|
'matches' => "App.profile_rules_password_confirm_m"
|
||||||
|
],
|
||||||
|
'comments' => [
|
||||||
|
"max_length" => "Users.validation.last_name.max_length",
|
||||||
|
]
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|
||||||
public function getGroupsTitles($user_token){
|
public function getResource($search = [])
|
||||||
|
{
|
||||||
|
$builder = $this->db
|
||||||
|
->table($this->table . " t1")
|
||||||
|
->select(
|
||||||
|
"t1.id as id, t1.first_name AS first_name, t1.last_name AS last_name,
|
||||||
|
t2.secret AS email, t1.last_active AS last_active, t3.nombre AS cliente"
|
||||||
|
);
|
||||||
|
|
||||||
$sql = 'SELECT `auth_groups`.`title` FROM `auth_groups`
|
$builder->join("auth_identities t2", "t1.id = t2.user_id", "left");
|
||||||
JOIN `group_user` ON `auth_groups`.`token` = `group_user`.`token_group`
|
$builder->join("clientes t3", "t1.cliente_id = t3.id", "left");
|
||||||
JOIN `auth_user` ON `auth_user`.`token` = `group_user`.`token_user`
|
|
||||||
WHERE `auth_user`.`token` = \''. $user_token . '\'';
|
|
||||||
|
|
||||||
|
$builder->where('t1.deleted_at', null)->groupBy("t1.id");
|
||||||
|
|
||||||
$query = $this->db->query($sql);
|
if (empty($search))
|
||||||
$result = $query->getResultObject();
|
return $builder;
|
||||||
$data = [];
|
else {
|
||||||
foreach($result as $r){
|
$builder->groupStart();
|
||||||
array_push($data, $r->title);
|
foreach ($search as $col_search) {
|
||||||
|
$column = self::SORTABLE[$col_search[0]];
|
||||||
|
$value = $col_search[2];
|
||||||
|
$builder->where("LOWER(CONVERT($column USING utf8)) COLLATE utf8_general_ci LIKE", "%" . strtolower($value) . "%");
|
||||||
|
}
|
||||||
|
$builder->groupEnd();
|
||||||
|
return $builder;
|
||||||
}
|
}
|
||||||
return implode(',', $data);
|
}
|
||||||
|
|
||||||
|
public function getComerciales()
|
||||||
|
{
|
||||||
|
|
||||||
|
$builder = $this->db
|
||||||
|
->table("users" . " t1")
|
||||||
|
->select(
|
||||||
|
"t1.id AS id, CONCAT(t1.first_name, ' ', t1.last_name) AS name"
|
||||||
|
);
|
||||||
|
|
||||||
|
$builder->where('t1.deleted_at', null);
|
||||||
|
$builder->where("t2.group", "comercial");
|
||||||
|
$builder->join("auth_groups_users t2", "t1.id = t2.user_id", "left");
|
||||||
|
|
||||||
|
return $builder->get()->getResult();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getFullName($id=0){
|
||||||
|
$builder = $this->db
|
||||||
|
->table("users" . " t1")
|
||||||
|
->select(
|
||||||
|
"CONCAT(t1.first_name, ' ', t1.last_name) AS name"
|
||||||
|
);
|
||||||
|
|
||||||
|
$builder->where('t1.deleted_at', null);
|
||||||
|
$builder->where('t1.id', $id);
|
||||||
|
|
||||||
|
return $builder->get()->getRow()->name;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Método para comprobar si el email ya está registrado
|
||||||
|
public function isEmailUnique($email)
|
||||||
|
{
|
||||||
|
$builder = $this->db
|
||||||
|
->table("auth_identities t1") // La tabla correcta
|
||||||
|
->select("t1.secret AS email")
|
||||||
|
->where('secret', $email);
|
||||||
|
|
||||||
|
// Obtener resultados
|
||||||
|
$result = $builder->get()->getRow();
|
||||||
|
|
||||||
|
// Devuelve true si no se encuentra el correo (es único), false en caso contrario
|
||||||
|
return $result === null;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,14 +2,12 @@
|
|||||||
<div class="card accordion-item active">
|
<div class="card accordion-item active">
|
||||||
<h2 class="accordion-header" id="headingOne">
|
<h2 class="accordion-header" id="headingOne">
|
||||||
<button type="button" class="accordion-button" data-bs-toggle="collapse"
|
<button type="button" class="accordion-button" data-bs-toggle="collapse"
|
||||||
data-bs-target="#accordionResumenTip" aria-expanded="false"
|
data-bs-target="#accordionResumenTip" aria-expanded="false" aria-controls="accordionResumenTip">
|
||||||
aria-controls="accordionResumenTip">
|
|
||||||
<h4><?= lang("Presupuestos.resumen") ?></h4>
|
<h4><?= lang("Presupuestos.resumen") ?></h4>
|
||||||
</button>
|
</button>
|
||||||
</h2>
|
</h2>
|
||||||
|
|
||||||
<div id="accordionResumenTip" class="accordion-collapse collapse show"
|
<div id="accordionResumenTip" class="accordion-collapse collapse show" data-bs-parent="#accordionResumen">
|
||||||
data-bs-parent="#accordionResumen">
|
|
||||||
<div class="accordion-body">
|
<div class="accordion-body">
|
||||||
|
|
||||||
<div class="col-xl-12">
|
<div class="col-xl-12">
|
||||||
@ -18,63 +16,88 @@
|
|||||||
<!-- Price Details -->
|
<!-- Price Details -->
|
||||||
<dl class="row mb-0">
|
<dl class="row mb-0">
|
||||||
<dt class="col-5 py-1 fw-normal text-end">Coste papel</dt>
|
<dt class="col-5 py-1 fw-normal text-end">Coste papel</dt>
|
||||||
<dd class="py-1 col-6 text-end"><span id="totalCostePapel" class="autonumeric-resumen-currency"></span></dd>
|
<dd class="py-1 col-6 text-end"><span id="totalCostePapel"
|
||||||
|
class="autonumeric-resumen-currency"></span></dd>
|
||||||
<dt class="col-5 py-1 fw-normal text-end">Margen papel</dt>
|
<dt class="col-5 py-1 fw-normal text-end">Margen papel</dt>
|
||||||
<dd class="col-3 text-end py-1"><span id="porcentajeMargenPapel" class="autonumeric-resumen-percent"></span></dd>
|
<dd class="col-3 text-end py-1"><span id="porcentajeMargenPapel"
|
||||||
<dd class="col-3 text-end py-1"><span id="margenPapel" class="autonumeric-resumen-currency"></span></dd>
|
class="autonumeric-resumen-percent"></span></dd>
|
||||||
|
<dd class="col-3 text-end py-1"><span id="margenPapel"
|
||||||
|
class="autonumeric-resumen-currency"></span></dd>
|
||||||
|
|
||||||
<dt class="col-5 fw-normal text-end">Coste impresión</dt>
|
<dt class="col-5 fw-normal text-end">Coste impresión</dt>
|
||||||
<dd class="col-6 text-end py-1"><span id="totalCosteImpresion" class="autonumeric-resumen-currency"></span></dd>
|
<dd class="col-6 text-end py-1"><span id="totalCosteImpresion"
|
||||||
|
class="autonumeric-resumen-currency"></span></dd>
|
||||||
<dt class="col-5 py-1 fw-normal text-end">Margen impresión</dt>
|
<dt class="col-5 py-1 fw-normal text-end">Margen impresión</dt>
|
||||||
<dd class="col-3 text-end py-1"><span id="porcentajeMargenImpresion" class="autonumeric-resumen-percent"></span></dd>
|
<dd class="col-3 text-end py-1"><span id="porcentajeMargenImpresion"
|
||||||
<dd class="col-3 text-end py-1"><span id="margenImpresion" class="autonumeric-resumen-currency"></span></d>
|
class="autonumeric-resumen-percent"></span></dd>
|
||||||
|
<dd class="col-3 text-end py-1"><span id="margenImpresion"
|
||||||
|
class="autonumeric-resumen-currency"></span></d>
|
||||||
|
|
||||||
<dt class="col-5 fw-normal text-end">Coste servicios</dt>
|
<dt class="col-5 fw-normal text-end">Coste servicios</dt>
|
||||||
<dd class="col-6 text-end py-1 "><span id="totalServicios" class="autonumeric-resumen-currency"></span></dd>
|
<dd class="col-6 text-end py-1 "><span id="totalServicios"
|
||||||
|
class="autonumeric-resumen-currency"></span></dd>
|
||||||
<dt class="col-5 fw-normal text-end">Margen servicios</dt>
|
<dt class="col-5 fw-normal text-end">Margen servicios</dt>
|
||||||
<dd class="col-3 text-end py-1 "><span id="porcentajeMargenServicios" class="autonumeric-resumen-percent"></span></dd>
|
<dd class="col-3 text-end py-1 "><span id="porcentajeMargenServicios"
|
||||||
<dd class="col-3 text-end py-1 "><span id="margenServicios" class="autonumeric-resumen-currency"></span></dd>
|
class="autonumeric-resumen-percent"></span></dd>
|
||||||
|
<dd class="col-3 text-end py-1 "><span id="margenServicios"
|
||||||
|
class="autonumeric-resumen-currency"></span></dd>
|
||||||
|
|
||||||
<dt class="col-5 fw-normal text-end">Coste de envío</dt>
|
<dt class="col-5 fw-normal text-end">Coste de envío</dt>
|
||||||
<dd class="col-6 text-end py-1 "><span id="costeEnvios" class="autonumeric-resumen-currency"></span></sp>
|
<dd class="col-6 text-end py-1 "><span id="costeEnvios"
|
||||||
<dt class="col-5 fw-normal text-end">Precio de envío</dt>
|
class="autonumeric-resumen-currency"></span></dd>
|
||||||
<dd class="col-6 text-end py-1 "><span id="precioEnvios" class="autonumeric-resumen-currency"></span></sp>
|
|
||||||
<dt class="col-5 fw-normal text-end">Margen envío</dt>
|
<dt class="col-5 fw-normal text-end">Margen envío</dt>
|
||||||
<dd class="col-6 text-end py-1 "><span id="margenEnvios" class="autonumeric-resumen-currency"></span></sp>
|
<dd class="col-6 text-end py-1 "><span id="margenEnvios"
|
||||||
|
class="autonumeric-resumen-currency"></span></dd>
|
||||||
|
<dt class="col-5 fw-normal text-end">Total envío base</dt>
|
||||||
|
<dd class="col-6 text-end py-1 "><span id="precioEnvios"
|
||||||
|
class="autonumeric-resumen-currency"></span></dd>
|
||||||
</dl>
|
</dl>
|
||||||
|
|
||||||
<hr class="mx-n4">
|
<hr class="mx-n4">
|
||||||
|
|
||||||
<dl class="row mb-0">
|
<dl class="row mb-0">
|
||||||
<dt class="col-5 fw-normal text-end">Total Costes</dt>
|
<dt class="col-5 fw-normal text-end">Total Costes</dt>
|
||||||
<dd class="col-6 text-end "><span id="totalCostes" class="autonumeric-resumen-currency"></span></span>
|
<dd class="col-6 text-end "><span id="totalCostes"
|
||||||
|
class="autonumeric-resumen-currency"></span></span>
|
||||||
<dt class="col-5 fw-normal text-end">Total Margen</dt>
|
<dt class="col-5 fw-normal text-end">Total Margen</dt>
|
||||||
<dd class="col-3 text-end py-1"><span id="porcentajeMargen" class="autonumeric-resumen-percent"></span></dd>
|
<dd class="col-3 text-end py-1"><span id="porcentajeMargen"
|
||||||
<dd class="col-3 text-end py-1"><span id="totalMargenes" class="autonumeric-resumen-currency"></span></dd>
|
class="autonumeric-resumen-percent"></span></dd>
|
||||||
|
<dd class="col-3 text-end py-1"><span id="totalMargenes"
|
||||||
|
class="autonumeric-resumen-currency"></span></dd>
|
||||||
</dl>
|
</dl>
|
||||||
|
|
||||||
<hr class="mx-n4">
|
<hr class="mx-n4">
|
||||||
|
|
||||||
<dl class="row mb-0">
|
<dl class="row mb-0">
|
||||||
<dt class="col-5 fw-normal text-end">Total</dt>
|
<dt class="col-5 fw-normal text-end">Total antes de descuento</dt>
|
||||||
<dd class="col-6 text-end"><span id="totalAntesDescuento" class="autonumeric-resumen-currency"></span></span>
|
<dd class="col-6 text-end"><span id="totalAntesDescuento"
|
||||||
|
class="autonumeric-resumen-currency"></span></span>
|
||||||
<dt class="col-5 py-1 fw-normal text-end">Descuento (%)</dt>
|
<dt class="col-5 py-1 fw-normal text-end">Descuento (%)</dt>
|
||||||
<dd id="dd" class="col-3 text-end py-1"><input id="total_descuentoPercent" type="number" value="" class="update-totales form-control" style="width:100% !important;"></dd>
|
<dd id="dd" class="col-3 text-end py-1"><input id="total_descuentoPercent" type="number"
|
||||||
<dd class="col-3 py-1 text-end "><span id="descuentoTotal" class="autonumeric-resumen-currency"></span></dd>
|
value="" class="update-totales form-control" style="width:100% !important;"></dd>
|
||||||
|
<dd class="col-3 py-1 text-end "><span id="descuentoTotal"
|
||||||
|
class="autonumeric-resumen-currency"></span></dd>
|
||||||
<dt class="col-5 text-end">Total presupuesto</dt>
|
<dt class="col-5 text-end">Total presupuesto</dt>
|
||||||
<dd class="col-6 text-end"><span id="totalDespuesDecuento" class="fw-semibold autonumeric-resumen-currency"></span></dd>
|
<dd class="col-6 text-end"><span id="totalDespuesDecuento"
|
||||||
|
class="fw-semibold autonumeric-resumen-currency"></span></dd>
|
||||||
<dt class="col-5 fw-normal text-end">Precio unidad</dt>
|
<dt class="col-5 fw-normal text-end">Precio unidad</dt>
|
||||||
<dd class="col-6 text-end mb-2"><span id="precioUnidadPresupuesto" class="autonumeric-resumen-currency-4"></span></dd>
|
<dd class="col-6 text-end mb-2"><span id="precioUnidadPresupuesto"
|
||||||
|
class="autonumeric-resumen-currency-4"></span></dd>
|
||||||
<dt class="col-5 fw-normal text-end" style="font-size: smaller !important;">Factor</dt>
|
<dt class="col-5 fw-normal text-end" style="font-size: smaller !important;">Factor</dt>
|
||||||
<dd class="col-6 text-end mb-2 "><span id="factor" class="autonumeric-resumen-2" style="font-size: smaller !important;"></span></dd>
|
<dd class="col-6 text-end mb-2 "><span id="factor" class="autonumeric-resumen-2"
|
||||||
<dt class="col-5 fw-normal text-end" style="font-size: smaller !important;">Factor Ponderado</dt>
|
style="font-size: smaller !important;"></span></dd>
|
||||||
<dd class="col-6 text-end mb-0"><span id="factor_ponderado" class="autonumeric-resumen-2" style="font-size: smaller !important;"></span></dd>
|
<dt class="col-5 fw-normal text-end" style="font-size: smaller !important;">Factor Ponderado
|
||||||
|
</dt>
|
||||||
|
<dd class="col-6 text-end mb-0"><span id="factor_ponderado" class="autonumeric-resumen-2"
|
||||||
|
style="font-size: smaller !important;"></span></dd>
|
||||||
</dl>
|
</dl>
|
||||||
</div>
|
</div>
|
||||||
<div class="d-grid float-end mb-4">
|
<div class="d-grid float-end mb-4">
|
||||||
<div class="form-check form-switch mb-2">
|
<div class="form-check form-switch mb-2">
|
||||||
<input class="form-check-input" <?= $presupuestoEntity->estado_id == 2 ? 'onclick="return false;"' : ''; ?> type="checkbox" id="confirmar_presupuesto" name="confirmar_presupuesto" value="1" <?= $presupuestoEntity->estado_id == 2 ? 'checked' : ''; ?>>
|
<input class="form-check-input" <?= $presupuestoEntity->estado_id == 2 ? 'onclick="return false;"' : ''; ?> type="checkbox" id="confirmar_presupuesto"
|
||||||
<label class="form-check-label" for="confirmar_presupuesto"><?= $presupuestoEntity->estado_id == 2 ? lang('Presupuestos.confirmado') : lang('Presupuestos.confirmar'); ?></label>
|
name="confirmar_presupuesto" value="1" <?= $presupuestoEntity->estado_id == 2 ? 'checked' : ''; ?>>
|
||||||
|
<label class="form-check-label"
|
||||||
|
for="confirmar_presupuesto"><?= $presupuestoEntity->estado_id == 2 ? lang('Presupuestos.confirmado') : lang('Presupuestos.confirmar'); ?></label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -92,18 +115,53 @@
|
|||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<?php if ($presupuestoEntity->estado_id == 2): ?>
|
<div class="col-xl-12 mt-3">
|
||||||
<div class="row mt-5">
|
<div class="card border border-secondary-subtle rounded-3">
|
||||||
<div class="mb-1">
|
<div class="card-body">
|
||||||
<label for="totalAceptado" class="form-label">
|
<div id="div_ajustar_error" class="alert alert-danger d-flex align-items-baseline d-none" role="alert">
|
||||||
<?= lang('Presupuestos.totalAceptado') ?>
|
<span class="alert-icon alert-icon-lg text-primary me-2">
|
||||||
</label>
|
<i class="ti ti-ban ti-sm"></i>
|
||||||
<input disabled type="text" id="totalAceptado" name="totalAceptado" class="form-control autonumeric-resumen-currency" value="" <?php echo ($tipo_impresion_id == 21) ? ' max=80' : '' ?>>
|
</span>
|
||||||
</div><!--//.mb-3 -->
|
<div class="d-flex flex-column ps-1">
|
||||||
</div>
|
<h5 id="error_recalcular_margen" class="alert-heading mb-2"></h5>
|
||||||
<?php endif; ?>
|
</div>
|
||||||
|
</div>
|
||||||
</div> <!-- //.accordion-body -->
|
<div class="row">
|
||||||
</div> <!-- //.accordion-collapse -->
|
<p>El total aceptado y revisado tiene que ser mayor que total costes + precio de envío
|
||||||
</div> <!-- //.accordion-item -->
|
</p>
|
||||||
</div> <!-- //.accordion -->
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-sm-6 mb-md-0 mb-2">
|
||||||
|
<label for="total_aceptado_revisado" class="form-label">Total aceptado y
|
||||||
|
revisado</label>
|
||||||
|
<input <?= ($presupuestoEntity->estado_id == 2) ? "disabled" : "" ?> type="text"
|
||||||
|
class="autonumeric-currency form-control text-center fs-5"
|
||||||
|
id="total_aceptado_revisado"></input>
|
||||||
|
</div>
|
||||||
|
<div class="col-sm-6 d-flex align-items-end mb-md-0 mb-2">
|
||||||
|
<button type="button" id="btn_ajustar_revisado"
|
||||||
|
class="btn btn-primary w-100">Ajustar</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<?php /*if ($presupuestoEntity->estado_id == 2): ?>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-sm-6 mb-1">
|
||||||
|
<label for="totalAceptado"
|
||||||
|
class="form-label"><?= lang('Presupuestos.totalAceptado') ?></label>
|
||||||
|
<input disabled type="text" id="totalAceptado" name="totalAceptado"
|
||||||
|
class="form-control text-center fs-5 autonumeric-resumen-currency" value="" <?php echo ($tipo_impresion_id == 21) ? ' max=80' : '' ?>>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<?php endif; */?>
|
||||||
|
<div class="row">
|
||||||
|
<p>
|
||||||
|
<span id="aprobado_by_at"></span>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div> <!-- //.card-body -->
|
||||||
|
</div> <!-- //.card -->
|
||||||
|
</div> <!-- //.col-xl-12 -->
|
||||||
|
</div> <!-- //.accordion-body -->
|
||||||
|
</div> <!-- //.accordion-collapse -->
|
||||||
|
</div> <!-- //.accordion-item -->
|
||||||
@ -68,7 +68,7 @@ class Chat {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (this.chatHistoryBody[0]) {
|
if (this.chatHistoryBody[0]) {
|
||||||
console.log("History body");
|
//console.log("History body");
|
||||||
this.scrollbarChatHistory = new PerfectScrollbar(this.chatHistoryBody[0], {
|
this.scrollbarChatHistory = new PerfectScrollbar(this.chatHistoryBody[0], {
|
||||||
wheelPropagation: false,
|
wheelPropagation: false,
|
||||||
suppressScrollX: true,
|
suppressScrollX: true,
|
||||||
|
|||||||
@ -120,6 +120,30 @@ class PresupuestoAdminEdit {
|
|||||||
this.tiradasAlternativas.init();
|
this.tiradasAlternativas.init();
|
||||||
this.resumen.init();
|
this.resumen.init();
|
||||||
|
|
||||||
|
$('#btn_ajustar_revisado').on('click', function () {
|
||||||
|
|
||||||
|
this.resumen.updateTotales({ updateLP: true, updateServicios: true, updateEnvio: true }, true);
|
||||||
|
}.bind(this));
|
||||||
|
|
||||||
|
$('#total_aceptado_revisado').on('change', function () {
|
||||||
|
let totalCostes = AutoNumeric.getAutoNumericElement($('#totalCostes')[0]);
|
||||||
|
let envio_base = AutoNumeric.getAutoNumericElement($('#precioEnvios')[0]);
|
||||||
|
let autoTotalAceptado = AutoNumeric.getAutoNumericElement($('#total_aceptado_revisado')[0]);
|
||||||
|
let total_aceptado_revisado = autoTotalAceptado.getNumber();
|
||||||
|
|
||||||
|
if (total_aceptado_revisado && total_aceptado_revisado != 0) {
|
||||||
|
const nuevoTotal = totalCostes.getNumber() + envio_base.getNumber();
|
||||||
|
|
||||||
|
if (total_aceptado_revisado < nuevoTotal) {
|
||||||
|
// Solo usá .set(), no .val() ni .html()
|
||||||
|
autoTotalAceptado.set(nuevoTotal);
|
||||||
|
total_aceptado_revisado = nuevoTotal;
|
||||||
|
}
|
||||||
|
|
||||||
|
totalMargenes = total_aceptado_revisado - nuevoTotal;
|
||||||
|
}
|
||||||
|
}.bind(this));
|
||||||
|
|
||||||
if (window.location.href.includes("edit")) {
|
if (window.location.href.includes("edit")) {
|
||||||
|
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
@ -375,6 +399,10 @@ class PresupuestoAdminEdit {
|
|||||||
self.tipo_impresion.val(response.data.tipo_impresion);
|
self.tipo_impresion.val(response.data.tipo_impresion);
|
||||||
self.POD.val(response.data.POD);
|
self.POD.val(response.data.POD);
|
||||||
|
|
||||||
|
AutoNumeric.getAutoNumericElement($('#total_aceptado_revisado')[0]).set(response.data.total_aceptado_revisado);
|
||||||
|
|
||||||
|
$('#aprobado_by_at').html(response.data.aprobado_by_at);
|
||||||
|
|
||||||
$('#created_by').html(response.data.created_by);
|
$('#created_by').html(response.data.created_by);
|
||||||
$('#updated_by').html(response.data.updated_by);
|
$('#updated_by').html(response.data.updated_by);
|
||||||
$('#created_at').html(response.data.created_at);
|
$('#created_at').html(response.data.created_at);
|
||||||
@ -620,7 +648,7 @@ class PresupuestoAdminEdit {
|
|||||||
const svgData = serializer.serializeToString(shapeSvgEl);
|
const svgData = serializer.serializeToString(shapeSvgEl);
|
||||||
const svgBlob = new Blob([svgData], { type: 'image/svg+xml;charset=utf-8' });
|
const svgBlob = new Blob([svgData], { type: 'image/svg+xml;charset=utf-8' });
|
||||||
const svgUrl = URL.createObjectURL(svgBlob);
|
const svgUrl = URL.createObjectURL(svgBlob);
|
||||||
const img = new Image(shapeSvgEl.getBoundingClientRect().width,shapeSvgEl.getBoundingClientRect().height);
|
const img = new Image(shapeSvgEl.getBoundingClientRect().width, shapeSvgEl.getBoundingClientRect().height);
|
||||||
img.onload = () => {
|
img.onload = () => {
|
||||||
const scaleFactor = 3; // Increase resolution (e.g., 2x, 3x)
|
const scaleFactor = 3; // Increase resolution (e.g., 2x, 3x)
|
||||||
const canvas = document.createElement('canvas');
|
const canvas = document.createElement('canvas');
|
||||||
@ -631,7 +659,7 @@ class PresupuestoAdminEdit {
|
|||||||
canvas.height = height * scaleFactor;
|
canvas.height = height * scaleFactor;
|
||||||
const ctx = canvas.getContext('2d');
|
const ctx = canvas.getContext('2d');
|
||||||
ctx.scale(scaleFactor, scaleFactor);
|
ctx.scale(scaleFactor, scaleFactor);
|
||||||
ctx.drawImage(img, 0,0,width,height);
|
ctx.drawImage(img, 0, 0, width, height);
|
||||||
const pngUrl = canvas.toDataURL('image/png');
|
const pngUrl = canvas.toDataURL('image/png');
|
||||||
const downloadLink = document.createElement('a');
|
const downloadLink = document.createElement('a');
|
||||||
downloadLink.href = pngUrl;
|
downloadLink.href = pngUrl;
|
||||||
|
|||||||
@ -548,10 +548,10 @@ class DatosLibro {
|
|||||||
|
|
||||||
this.updateComparador();
|
this.updateComparador();
|
||||||
|
|
||||||
const url2 = window.location.href;
|
const url = window.location.href;
|
||||||
const url_parts2 = url2.split('/');
|
|
||||||
|
|
||||||
if (url_parts2[url_parts2.length - 2] == 'edit') {
|
|
||||||
|
if (url.includes('edit')) {
|
||||||
$(document).trigger('update-presupuesto', {
|
$(document).trigger('update-presupuesto', {
|
||||||
update_lineas: true,
|
update_lineas: true,
|
||||||
update_servicios: true,
|
update_servicios: true,
|
||||||
|
|||||||
@ -41,14 +41,13 @@ class Envios {
|
|||||||
processing: true,
|
processing: true,
|
||||||
autoWidth: true,
|
autoWidth: true,
|
||||||
responsive: true,
|
responsive: true,
|
||||||
order: [[0, "asc"]],
|
|
||||||
pageLength: 20,
|
pageLength: 20,
|
||||||
lengthChange: false,
|
lengthChange: false,
|
||||||
searching: false,
|
searching: false,
|
||||||
paging: false,
|
paging: false,
|
||||||
info: false,
|
info: false,
|
||||||
scrollX: true,
|
scrollX: true,
|
||||||
|
ordering: false,
|
||||||
columns: [
|
columns: [
|
||||||
{ 'data': 'tarifa_id' },
|
{ 'data': 'tarifa_id' },
|
||||||
{ 'data': 'cantidad' },
|
{ 'data': 'cantidad' },
|
||||||
@ -87,10 +86,10 @@ class Envios {
|
|||||||
{
|
{
|
||||||
orderable: false,
|
orderable: false,
|
||||||
searchable: false,
|
searchable: false,
|
||||||
targets: [$('#tableOfDireccionesEnvio').find("tr:first th").length - 1]
|
// all columns
|
||||||
|
targets: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
|
||||||
|
//targets: [$('#tableOfDireccionesEnvio').find("tr:first th").length - 1]
|
||||||
},
|
},
|
||||||
{ "orderData": [0], "targets": 0 },
|
|
||||||
|
|
||||||
],
|
],
|
||||||
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"
|
||||||
|
|||||||
@ -235,7 +235,7 @@ class LineasPresupuesto {
|
|||||||
|
|
||||||
let tipo = 'negro';
|
let tipo = 'negro';
|
||||||
switch (row.row_id) {
|
switch (row.row_id) {
|
||||||
case 'lp_negrohq':
|
case 'lp_bnhq':
|
||||||
tipo = 'negrohq';
|
tipo = 'negrohq';
|
||||||
break;
|
break;
|
||||||
case 'lp_rot_color':
|
case 'lp_rot_color':
|
||||||
@ -1727,7 +1727,7 @@ class LineasPresupuesto {
|
|||||||
let tipo = 'negro';
|
let tipo = 'negro';
|
||||||
let uso = 'interior';
|
let uso = 'interior';
|
||||||
switch (tipoLinea) {
|
switch (tipoLinea) {
|
||||||
case 'lp_negrohq':
|
case 'lp_bnhq':
|
||||||
tipo = 'negrohq';
|
tipo = 'negrohq';
|
||||||
break;
|
break;
|
||||||
case 'lp_rot_color':
|
case 'lp_rot_color':
|
||||||
|
|||||||
@ -11,7 +11,7 @@ class Resumen {
|
|||||||
const self = this;
|
const self = this;
|
||||||
this.toastPresupuestoTotal = null
|
this.toastPresupuestoTotal = null
|
||||||
$(".update-totales").on("change", function () {
|
$(".update-totales").on("change", function () {
|
||||||
self.updateTotales(true, true, true)
|
self.updateTotales(null, { updateLP: true, updateServicios: true, updateEnvio: true });
|
||||||
});
|
});
|
||||||
|
|
||||||
$(document).on('update-totales', async function () {
|
$(document).on('update-totales', async function () {
|
||||||
@ -26,22 +26,22 @@ class Resumen {
|
|||||||
// Mapear los valores a los elementos HTML por ID
|
// Mapear los valores a los elementos HTML por ID
|
||||||
$("#totalCostePapel").val(resumen.total_coste_papel || 0);
|
$("#totalCostePapel").val(resumen.total_coste_papel || 0);
|
||||||
$("#totalCostePapel").html(resumen.total_coste_papel || 0);
|
$("#totalCostePapel").html(resumen.total_coste_papel || 0);
|
||||||
$("#porcentajeMargenPapel").val(resumen.total_margenPercent_papel ? resumen.total_margenPercent_papel: 0);
|
$("#porcentajeMargenPapel").val(resumen.total_margenPercent_papel ? resumen.total_margenPercent_papel : 0);
|
||||||
$("#porcentajeMargenPapel").html(resumen.total_margenPercent_papel ? resumen.total_margenPercent_papel: 0);
|
$("#porcentajeMargenPapel").html(resumen.total_margenPercent_papel ? resumen.total_margenPercent_papel : 0);
|
||||||
$("#margenPapel").val(resumen.total_margen_papel || 0);
|
$("#margenPapel").val(resumen.total_margen_papel || 0);
|
||||||
$("#margenPapel").html(resumen.total_margen_papel || 0);
|
$("#margenPapel").html(resumen.total_margen_papel || 0);
|
||||||
|
|
||||||
$("#totalCosteImpresion").val(resumen.total_coste_impresion || 0);
|
$("#totalCosteImpresion").val(resumen.total_coste_impresion || 0);
|
||||||
$("#totalCosteImpresion").html(resumen.total_coste_impresion || 0);
|
$("#totalCosteImpresion").html(resumen.total_coste_impresion || 0);
|
||||||
$("#porcentajeMargenImpresion").val(resumen.total_margenPercent_impresion ? resumen.total_margenPercent_impresion: 0);
|
$("#porcentajeMargenImpresion").val(resumen.total_margenPercent_impresion ? resumen.total_margenPercent_impresion : 0);
|
||||||
$("#porcentajeMargenImpresion").html(resumen.total_margenPercent_impresion ? resumen.total_margenPercent_impresion: 0);
|
$("#porcentajeMargenImpresion").html(resumen.total_margenPercent_impresion ? resumen.total_margenPercent_impresion : 0);
|
||||||
$("#margenImpresion").val(resumen.total_margen_impresion || 0);
|
$("#margenImpresion").val(resumen.total_margen_impresion || 0);
|
||||||
$("#margenImpresion").html(resumen.total_margen_impresion || 0);
|
$("#margenImpresion").html(resumen.total_margen_impresion || 0);
|
||||||
|
|
||||||
$("#totalServicios").html(resumen.total_coste_servicios || 0);
|
$("#totalServicios").html(resumen.total_coste_servicios || 0);
|
||||||
$("#totalServicios").val(resumen.total_coste_servicios || 0);
|
$("#totalServicios").val(resumen.total_coste_servicios || 0);
|
||||||
$("#porcentajeMargenServicios").val(resumen.total_margenPercent_servicios ? resumen.total_margenPercent_servicios: 0);
|
$("#porcentajeMargenServicios").val(resumen.total_margenPercent_servicios ? resumen.total_margenPercent_servicios : 0);
|
||||||
$("#porcentajeMargenServicios").html(resumen.total_margenPercent_servicios ? resumen.total_margenPercent_servicios: 0);
|
$("#porcentajeMargenServicios").html(resumen.total_margenPercent_servicios ? resumen.total_margenPercent_servicios : 0);
|
||||||
$("#margenServicios").val(resumen.total_margen_servicios || 0);
|
$("#margenServicios").val(resumen.total_margen_servicios || 0);
|
||||||
$("#margenServicios").html(resumen.total_margen_servicios || 0);
|
$("#margenServicios").html(resumen.total_margen_servicios || 0);
|
||||||
|
|
||||||
@ -52,11 +52,11 @@ class Resumen {
|
|||||||
$("#margenEnvios").html(resumen.total_margen_envios || 0);
|
$("#margenEnvios").html(resumen.total_margen_envios || 0);
|
||||||
$("#margenEnvios").val(resumen.total_margen_envios || 0);
|
$("#margenEnvios").val(resumen.total_margen_envios || 0);
|
||||||
|
|
||||||
$("#totalCostes").html(resumen.total_costes || 0);
|
$("#totalCostes").html(resumen.total_costes || 0).val();
|
||||||
$("#porcentajeMargen").html(resumen.porcentajeMargen ? resumen.porcentajeMargen: 0);
|
$("#porcentajeMargen").html(resumen.porcentajeMargen ? resumen.porcentajeMargen : 0);
|
||||||
$("#totalMargenes").html(resumen.total_margenes || 0);
|
$("#totalMargenes").html(resumen.total_margenes || 0);
|
||||||
$("#totalCostes").val(resumen.total_costes || 0);
|
$("#totalCostes").val(resumen.total_costes || 0);
|
||||||
$("#porcentajeMargen").val(resumen.porcentajeMargen ? resumen.porcentajeMargen: 0);
|
$("#porcentajeMargen").val(resumen.porcentajeMargen ? resumen.porcentajeMargen : 0);
|
||||||
$("#totalMargenes").val(resumen.total_margenes || 0);
|
$("#totalMargenes").val(resumen.total_margenes || 0);
|
||||||
|
|
||||||
$("#totalAntesDescuento").html(resumen.total_antes_descuento || 0);
|
$("#totalAntesDescuento").html(resumen.total_antes_descuento || 0);
|
||||||
@ -64,14 +64,14 @@ class Resumen {
|
|||||||
$("#descuentoTotal").html(resumen.total_descuento || 0);
|
$("#descuentoTotal").html(resumen.total_descuento || 0);
|
||||||
$("#totalDespuesDecuento").html(resumen.total_presupuesto || 0).trigger("change")
|
$("#totalDespuesDecuento").html(resumen.total_presupuesto || 0).trigger("change")
|
||||||
$("#precioUnidadPresupuesto").html(resumen.total_precio_unidad || 0);
|
$("#precioUnidadPresupuesto").html(resumen.total_precio_unidad || 0);
|
||||||
$("#factor").html(resumen.total_factor|| 0);
|
$("#factor").html(resumen.total_factor || 0);
|
||||||
$("#factor_ponderado").html(resumen.total_factor_ponderado|| 0);
|
$("#factor_ponderado").html(resumen.total_factor_ponderado || 0);
|
||||||
$("#totalAntesDescuento").val(resumen.total_antes_descuento || 0);
|
$("#totalAntesDescuento").val(resumen.total_antes_descuento || 0);
|
||||||
$("#descuentoTotal").val(resumen.total_descuento || 0);
|
$("#descuentoTotal").val(resumen.total_descuento || 0);
|
||||||
$("#totalDespuesDecuento").val(resumen.total_presupuesto || 0).trigger("change")
|
$("#totalDespuesDecuento").val(resumen.total_presupuesto || 0).trigger("change")
|
||||||
$("#precioUnidadPresupuesto").val(resumen.total_precio_unidad || 0);
|
$("#precioUnidadPresupuesto").val(resumen.total_precio_unidad || 0);
|
||||||
$("#factor").val(resumen.total_factor|| 0);
|
$("#factor").val(resumen.total_factor || 0);
|
||||||
$("#factor_ponderado").val(resumen.total_factor_ponderado|| 0);
|
$("#factor_ponderado").val(resumen.total_factor_ponderado || 0);
|
||||||
|
|
||||||
if (resumen.total_aceptado !== undefined) {
|
if (resumen.total_aceptado !== undefined) {
|
||||||
$("#totalAceptado").html(resumen.total_aceptado || 0);
|
$("#totalAceptado").html(resumen.total_aceptado || 0);
|
||||||
@ -94,7 +94,7 @@ class Resumen {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
async updateTotales(event, data = {}) {
|
async updateTotales(data = {}, ajustar = false) {
|
||||||
|
|
||||||
const self = this;
|
const self = this;
|
||||||
|
|
||||||
@ -297,9 +297,48 @@ class Resumen {
|
|||||||
margenEnvios = parseFloat($('#margenEnvios').attr('val'))
|
margenEnvios = parseFloat($('#margenEnvios').attr('val'))
|
||||||
}
|
}
|
||||||
|
|
||||||
let totalCostes = parseFloat(totalPapel.toFixed(2)) + parseFloat(totalImpresion.toFixed(2)) + parseFloat(totalServicios.toFixed(2)) + parseFloat(totalEnvios.toFixed(2))
|
let totalCostes = parseFloat(totalPapel.toFixed(2)) + parseFloat(totalImpresion.toFixed(2))
|
||||||
|
+ parseFloat(totalServicios.toFixed(2)) + parseFloat(totalEnvios.toFixed(2))
|
||||||
|
|
||||||
let totalMargenes = parseFloat(margenPapel.toFixed(2)) + parseFloat(margenImpresion.toFixed(2)) + parseFloat(margenServicios.toFixed(2)) + parseFloat(margenEnvios.toFixed(2))
|
let totalMargenes = parseFloat(margenPapel.toFixed(2)) + parseFloat(margenImpresion.toFixed(2)) + parseFloat(margenServicios.toFixed(2)) + parseFloat(margenEnvios.toFixed(2))
|
||||||
let porcentajeMargen = totalCostes + totalMargenes > 0 ? (100 * totalMargenes / (totalCostes + totalMargenes)).toFixed(0) : 0
|
|
||||||
|
let autoTotalAceptado = AutoNumeric.getAutoNumericElement($('#total_aceptado_revisado')[0]);
|
||||||
|
let total_aceptado_revisado = autoTotalAceptado.getNumber();
|
||||||
|
|
||||||
|
if (ajustar) {
|
||||||
|
if (total_aceptado_revisado && total_aceptado_revisado != 0) {
|
||||||
|
const nuevoTotal = totalCostes + totalEnvios_base;
|
||||||
|
|
||||||
|
|
||||||
|
if (total_aceptado_revisado < nuevoTotal) {
|
||||||
|
|
||||||
|
if($('#total_aceptado')){
|
||||||
|
$('#div_ajustar_error').removeClass('d-none');
|
||||||
|
$('#error_recalcular_margen').hide().empty().
|
||||||
|
html('El presupuesto está confirmado y el total coste + precio de envio es menor que el total aceptado y revisado').
|
||||||
|
fadeIn("slow", function(){
|
||||||
|
setTimeout(function(){
|
||||||
|
$('#div_ajustar_error').addClass('d-none');
|
||||||
|
}, 5000);
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
autoTotalAceptado.set(nuevoTotal);
|
||||||
|
total_aceptado_revisado = nuevoTotal;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!($('#total_aceptado') && total_aceptado_revisado < nuevoTotal)){
|
||||||
|
totalMargenes = total_aceptado_revisado - nuevoTotal;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let porcentajeMargen = totalCostes + totalMargenes > 0 ? (100 * totalMargenes / (totalCostes)).toFixed(0) : 0
|
||||||
$('#totalCostes').html(totalCostes).val(totalCostes.toFixed(2))
|
$('#totalCostes').html(totalCostes).val(totalCostes.toFixed(2))
|
||||||
$('#totalMargenes').html(totalMargenes).val(totalMargenes.toFixed(2))
|
$('#totalMargenes').html(totalMargenes).val(totalMargenes.toFixed(2))
|
||||||
$('#porcentajeMargen').html(porcentajeMargen).val(porcentajeMargen)
|
$('#porcentajeMargen').html(porcentajeMargen).val(porcentajeMargen)
|
||||||
@ -307,11 +346,10 @@ class Resumen {
|
|||||||
if ($('#total_descuentoPercent').val() < 0) {
|
if ($('#total_descuentoPercent').val() < 0) {
|
||||||
$('#total_descuentoPercent').val(0)
|
$('#total_descuentoPercent').val(0)
|
||||||
}
|
}
|
||||||
let totalAntesDescuento = totalCostes + totalMargenes - parseFloat(totalEnvios.toFixed(2)) + totalEnvios_base;
|
let totalAntesDescuento = totalCostes + totalMargenes + totalEnvios_base;
|
||||||
let totalDescuento = totalAntesDescuento * parseInt($('#total_descuentoPercent').val() || 0) / 100
|
let totalDescuento = totalAntesDescuento * parseInt($('#total_descuentoPercent').val() || 0) / 100
|
||||||
let totalPresupuesto = totalAntesDescuento - totalDescuento; // para el calculo del precio_u solo se tiene en cuenta el base
|
let totalPresupuesto = totalAntesDescuento - totalDescuento; // para el calculo del precio_u solo se tiene en cuenta el base
|
||||||
let precioUnidad = totalPresupuesto / parseInt($('#tirada').val())
|
let precioUnidad = totalPresupuesto / parseInt($('#tirada').val())
|
||||||
totalPresupuesto += totalEnvios;
|
|
||||||
|
|
||||||
$('#totalAntesDescuento').html(totalAntesDescuento).val(totalAntesDescuento.toFixed(2))
|
$('#totalAntesDescuento').html(totalAntesDescuento).val(totalAntesDescuento.toFixed(2))
|
||||||
$('#descuentoTotal').html(totalDescuento).val(totalDescuento.toFixed(2))
|
$('#descuentoTotal').html(totalDescuento).val(totalDescuento.toFixed(2))
|
||||||
@ -369,9 +407,18 @@ class Resumen {
|
|||||||
data.total_aceptado = $('#totalDespuesDecuento').val();
|
data.total_aceptado = $('#totalDespuesDecuento').val();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let autoTotalAceptado = AutoNumeric.getAutoNumericElement($('#total_aceptado_revisado')[0]);
|
||||||
|
let total_aceptado_revisado = autoTotalAceptado.getNumber();
|
||||||
|
if (total_aceptado_revisado && total_aceptado_revisado != 0) {
|
||||||
|
data.total_aceptado_revisado = total_aceptado_revisado;
|
||||||
|
}
|
||||||
|
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
updateFromTotalAceptadoRevisado() {
|
||||||
|
}
|
||||||
|
|
||||||
roundToTwoDecimals(num) {
|
roundToTwoDecimals(num) {
|
||||||
return parseFloat(num.toFixed(2));
|
return parseFloat(num.toFixed(2));
|
||||||
}
|
}
|
||||||
|
|||||||
@ -116,13 +116,13 @@ class Servicios {
|
|||||||
}
|
}
|
||||||
else if (servicio == 'ferro') {
|
else if (servicio == 'ferro') {
|
||||||
const id = $('#ferro').attr('service-id');
|
const id = $('#ferro').attr('service-id');
|
||||||
if(!this.checkServiceInTable(this.serviciosExtra.table, id))
|
if (!this.checkServiceInTable(this.serviciosExtra.table, id))
|
||||||
this.serviciosExtra.getPresupuestoExtra(id);
|
this.serviciosExtra.getPresupuestoExtra(id);
|
||||||
}
|
}
|
||||||
else if (servicio == 'ferroDigital') {
|
else if (servicio == 'ferroDigital') {
|
||||||
const id = $('#ferroDigital').attr('service-id');
|
const id = $('#ferroDigital').attr('service-id');
|
||||||
if(!this.checkServiceInTable(this.serviciosExtra.table, id))
|
if (!this.checkServiceInTable(this.serviciosExtra.table, id))
|
||||||
this.serviciosExtra.getPresupuestoExtra(id);
|
this.serviciosExtra.getPresupuestoExtra(id);
|
||||||
}
|
}
|
||||||
else if (servicio == 'prototipo') {
|
else if (servicio == 'prototipo') {
|
||||||
const id = $('#prototipo').attr('service-id');
|
const id = $('#prototipo').attr('service-id');
|
||||||
@ -137,7 +137,7 @@ class Servicios {
|
|||||||
else if (servicio == 'retractilado5') {
|
else if (servicio == 'retractilado5') {
|
||||||
const id = $('#retractilado5').attr('service-id');
|
const id = $('#retractilado5').attr('service-id');
|
||||||
if (!this.checkServiceInTable(this.serviciosAcabado.table, id))
|
if (!this.checkServiceInTable(this.serviciosAcabado.table, id))
|
||||||
this.serviciosAcabado.getPresupuestoAcabado(id, null, null,true);
|
this.serviciosAcabado.getPresupuestoAcabado(id, null, null, true);
|
||||||
}
|
}
|
||||||
else if (servicio == 'solapas_cubierta') {
|
else if (servicio == 'solapas_cubierta') {
|
||||||
const id = $('#serv_solapas_cubierta').attr('service-id');
|
const id = $('#serv_solapas_cubierta').attr('service-id');
|
||||||
@ -227,7 +227,7 @@ class Servicios {
|
|||||||
}
|
}
|
||||||
else if (servicio == 'retractilado') {
|
else if (servicio == 'retractilado') {
|
||||||
const id = $('#retractilado').attr('service-id');
|
const id = $('#retractilado').attr('service-id');
|
||||||
for(let i = this.serviciosAcabado.table.rows().count(); i >= 0; i--) {
|
for (let i = this.serviciosAcabado.table.rows().count(); i >= 0; i--) {
|
||||||
let data = this.serviciosAcabado.table.row(i).data();
|
let data = this.serviciosAcabado.table.row(i).data();
|
||||||
if (data && data.tarifa_id == id) {
|
if (data && data.tarifa_id == id) {
|
||||||
this.serviciosAcabado.table.row(i).remove();
|
this.serviciosAcabado.table.row(i).remove();
|
||||||
@ -238,7 +238,7 @@ class Servicios {
|
|||||||
}
|
}
|
||||||
else if (servicio == 'retractilado5') {
|
else if (servicio == 'retractilado5') {
|
||||||
const id = $('#retractilado5').attr('service-id');
|
const id = $('#retractilado5').attr('service-id');
|
||||||
for(let i = this.serviciosAcabado.table.rows().count(); i >= 0; i--) {
|
for (let i = this.serviciosAcabado.table.rows().count(); i >= 0; i--) {
|
||||||
let data = this.serviciosAcabado.table.row(i).data();
|
let data = this.serviciosAcabado.table.row(i).data();
|
||||||
if (data && data.tarifa_id == id) {
|
if (data && data.tarifa_id == id) {
|
||||||
this.serviciosAcabado.table.row(i).remove();
|
this.serviciosAcabado.table.row(i).remove();
|
||||||
@ -461,6 +461,10 @@ class ServiciosAcabado {
|
|||||||
|
|
||||||
if (parseInt($('#tirada').val()) > 0) {
|
if (parseInt($('#tirada').val()) > 0) {
|
||||||
var tirada = parseInt($('#tirada').val())
|
var tirada = parseInt($('#tirada').val())
|
||||||
|
var merma = parseInt($('#merma').val())
|
||||||
|
if (merma && merma > 0) {
|
||||||
|
tirada = tirada + merma;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
var tirada = 0
|
var tirada = 0
|
||||||
@ -532,6 +536,10 @@ class ServiciosAcabado {
|
|||||||
let tirada = 0;
|
let tirada = 0;
|
||||||
if (parseInt($('#tirada').val()) > 0) {
|
if (parseInt($('#tirada').val()) > 0) {
|
||||||
tirada = parseInt($('#tirada').val())
|
tirada = parseInt($('#tirada').val())
|
||||||
|
var merma = parseInt($('#merma').val())
|
||||||
|
if (merma && merma > 0) {
|
||||||
|
tirada = tirada + merma;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (tarifa_ids.length > 0 && tirada > 0) {
|
if (tarifa_ids.length > 0 && tirada > 0) {
|
||||||
const data = {
|
const data = {
|
||||||
@ -578,6 +586,10 @@ class ServiciosAcabado {
|
|||||||
let tirada = 0
|
let tirada = 0
|
||||||
if (parseInt($('#tirada').val()) > 0) {
|
if (parseInt($('#tirada').val()) > 0) {
|
||||||
tirada = parseInt($('#tirada').val())
|
tirada = parseInt($('#tirada').val())
|
||||||
|
var merma = parseInt($('#merma').val())
|
||||||
|
if (merma && merma > 0) {
|
||||||
|
tirada = tirada + merma;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
let datos = {
|
let datos = {
|
||||||
tirada: tirada,
|
tirada: tirada,
|
||||||
@ -596,7 +608,7 @@ class ServiciosAcabado {
|
|||||||
new Ajax('/serviciosacabados/getvalues', datos, {},
|
new Ajax('/serviciosacabados/getvalues', datos, {},
|
||||||
function (response) {
|
function (response) {
|
||||||
if (response.values) {
|
if (response.values) {
|
||||||
if(uso=='cubierta'){
|
if (uso == 'cubierta') {
|
||||||
for (let i = self.table.rows().count() - 1; i >= 0; i--) {
|
for (let i = self.table.rows().count() - 1; i >= 0; i--) {
|
||||||
let data = self.table.row(i).data();
|
let data = self.table.row(i).data();
|
||||||
if (data && (data.cubierta == 1)) {
|
if (data && (data.cubierta == 1)) {
|
||||||
@ -604,7 +616,7 @@ class ServiciosAcabado {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(uso=='sobrecubierta'){
|
else if (uso == 'sobrecubierta') {
|
||||||
for (let i = self.table.rows().count() - 1; i >= 0; i--) {
|
for (let i = self.table.rows().count() - 1; i >= 0; i--) {
|
||||||
let data = self.table.row(i).data();
|
let data = self.table.row(i).data();
|
||||||
if (data && (data.sobrecubierta == 1)) {
|
if (data && (data.sobrecubierta == 1)) {
|
||||||
@ -612,7 +624,7 @@ class ServiciosAcabado {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(uso=='faja'){
|
else if (uso == 'faja') {
|
||||||
for (let i = self.table.rows().count() - 1; i >= 0; i--) {
|
for (let i = self.table.rows().count() - 1; i >= 0; i--) {
|
||||||
let data = self.table.row(i).data();
|
let data = self.table.row(i).data();
|
||||||
if (data && (data.faja == 1)) {
|
if (data && (data.faja == 1)) {
|
||||||
@ -1059,7 +1071,11 @@ class ServiciosEncuadernacion {
|
|||||||
|
|
||||||
let tirada = 0;
|
let tirada = 0;
|
||||||
if (parseInt($('#tirada').val()) > 0) {
|
if (parseInt($('#tirada').val()) > 0) {
|
||||||
tirada = parseInt($('#tirada').val())
|
tirada = parseInt($('#tirada').val());
|
||||||
|
var merma = parseInt($('#merma').val())
|
||||||
|
if (merma && merma > 0) {
|
||||||
|
tirada = tirada + merma;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let paginas = 0;
|
let paginas = 0;
|
||||||
@ -1160,6 +1176,10 @@ class ServiciosEncuadernacion {
|
|||||||
let tirada = 0;
|
let tirada = 0;
|
||||||
if (parseInt($('#tirada').val()) > 0) {
|
if (parseInt($('#tirada').val()) > 0) {
|
||||||
tirada = parseInt($('#tirada').val())
|
tirada = parseInt($('#tirada').val())
|
||||||
|
var merma = parseInt($('#merma').val())
|
||||||
|
if (merma && merma > 0) {
|
||||||
|
tirada = tirada + merma;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
let paginas = 0;
|
let paginas = 0;
|
||||||
if (parseInt($('#paginas').val()) > 0) {
|
if (parseInt($('#paginas').val()) > 0) {
|
||||||
@ -1201,6 +1221,10 @@ class ServiciosEncuadernacion {
|
|||||||
let tirada = 0;
|
let tirada = 0;
|
||||||
if (parseInt($('#tirada').val()) > 0) {
|
if (parseInt($('#tirada').val()) > 0) {
|
||||||
tirada = parseInt($('#tirada').val())
|
tirada = parseInt($('#tirada').val())
|
||||||
|
var merma = parseInt($('#merma').val())
|
||||||
|
if (merma && merma > 0) {
|
||||||
|
tirada = tirada + merma;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
let paginas = 0;
|
let paginas = 0;
|
||||||
if (parseInt($('#paginas').val()) > 0) {
|
if (parseInt($('#paginas').val()) > 0) {
|
||||||
@ -1243,6 +1267,10 @@ class ServiciosEncuadernacion {
|
|||||||
let tirada = 0;
|
let tirada = 0;
|
||||||
if (parseInt($('#tirada').val()) > 0) {
|
if (parseInt($('#tirada').val()) > 0) {
|
||||||
tirada = parseInt($('#tirada').val())
|
tirada = parseInt($('#tirada').val())
|
||||||
|
var merma = parseInt($('#merma').val())
|
||||||
|
if (merma && merma > 0) {
|
||||||
|
tirada = tirada + merma;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
let paginas = 0;
|
let paginas = 0;
|
||||||
if (parseInt($('#paginas').val()) > 0) {
|
if (parseInt($('#paginas').val()) > 0) {
|
||||||
@ -1531,6 +1559,10 @@ class ServiciosManipulado {
|
|||||||
let tirada = 0;
|
let tirada = 0;
|
||||||
if (parseInt($('#tirada').val()) > 0) {
|
if (parseInt($('#tirada').val()) > 0) {
|
||||||
tirada = parseInt($('#tirada').val())
|
tirada = parseInt($('#tirada').val())
|
||||||
|
var merma = parseInt($('#merma').val())
|
||||||
|
if (merma && merma > 0) {
|
||||||
|
tirada = tirada + merma;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let datos = {
|
let datos = {
|
||||||
@ -1568,6 +1600,10 @@ class ServiciosManipulado {
|
|||||||
let tirada = 0;
|
let tirada = 0;
|
||||||
if (parseInt($('#tirada').val()) > 0) {
|
if (parseInt($('#tirada').val()) > 0) {
|
||||||
tirada = parseInt($('#tirada').val())
|
tirada = parseInt($('#tirada').val())
|
||||||
|
var merma = parseInt($('#merma').val())
|
||||||
|
if (merma && merma > 0) {
|
||||||
|
tirada = tirada + merma;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (tarifa_ids.length > 0) {
|
if (tarifa_ids.length > 0) {
|
||||||
@ -1597,6 +1633,10 @@ class ServiciosManipulado {
|
|||||||
let tirada = 0;
|
let tirada = 0;
|
||||||
if (parseInt($('#tirada').val()) > 0) {
|
if (parseInt($('#tirada').val()) > 0) {
|
||||||
tirada = parseInt($('#tirada').val())
|
tirada = parseInt($('#tirada').val())
|
||||||
|
var merma = parseInt($('#merma').val())
|
||||||
|
if (merma && merma > 0) {
|
||||||
|
tirada = tirada + merma;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let datos = {
|
let datos = {
|
||||||
|
|||||||
@ -324,6 +324,7 @@ class DisenioCubierta {
|
|||||||
this.papelCubierta = datosCubierta.papel.id;
|
this.papelCubierta = datosCubierta.papel.id;
|
||||||
this.gramaje = datosCubierta.gramaje;
|
this.gramaje = datosCubierta.gramaje;
|
||||||
|
|
||||||
|
|
||||||
if (datosCubierta.lomoRedondo) {
|
if (datosCubierta.lomoRedondo) {
|
||||||
this.tapaDuraLomoRedondo.trigger('click');
|
this.tapaDuraLomoRedondo.trigger('click');
|
||||||
}
|
}
|
||||||
@ -336,23 +337,25 @@ class DisenioCubierta {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (datosCubierta.tapa == "dura") {
|
setTimeout(() => {
|
||||||
this.papelGuardas.setOption(datosGuardas.papel_id, datosGuardas.papel);
|
if (datosCubierta.tapa == "dura") {
|
||||||
this.gramajeGuardas.setOption(datosGuardas.gramaje, datosGuardas.gramaje);
|
this.papelGuardas.setOption(datosGuardas.papel_id, datosGuardas.papel);
|
||||||
this.guardasImpresas.val(datosGuardas.paginas).trigger('change');
|
this.gramajeGuardas.setOption(datosGuardas.gramaje, datosGuardas.gramaje);
|
||||||
this.cabezada.val(datosCubierta.cabezada).trigger('change');
|
this.guardasImpresas.val(datosGuardas.paginas).trigger('change');
|
||||||
}
|
this.cabezada.val(datosCubierta.cabezada).trigger('change');
|
||||||
else {
|
|
||||||
this.carasCubierta.val(datosCubierta.paginas).trigger('change');
|
|
||||||
if (datosCubierta.solapas) {
|
|
||||||
this.conSolapas.trigger('click');
|
|
||||||
this.tamanioSolapasCubierta.val(datosCubierta.solapas_ancho);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
this.sinSolapas.trigger('click');
|
this.carasCubierta.val(datosCubierta.paginas).trigger('change');
|
||||||
|
if (datosCubierta.solapas) {
|
||||||
|
this.conSolapas.trigger('click');
|
||||||
|
this.tamanioSolapasCubierta.val(datosCubierta.solapas_ancho);
|
||||||
|
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
this.sinSolapas.trigger('click');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}, 0);
|
||||||
|
|
||||||
this.divPapelCubierta.find(`[cod="${datosCubierta.papel.code}"]`).addClass('selected');
|
this.divPapelCubierta.find(`[cod="${datosCubierta.papel.code}"]`).addClass('selected');
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user