mirror of
https://git.imnavajas.es/jjimenez/safekat.git
synced 2025-07-25 22:52:08 +00:00
Merge branch 'main' into fix/sk-7/bugs
This commit is contained in:
@ -418,6 +418,8 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
|
|||||||
$this->model->removeIsDuplicado($presupuestoEntity->id);
|
$this->model->removeIsDuplicado($presupuestoEntity->id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$this->viewData['credito'] = model('App\Models\Clientes\ClienteModel')->getResumenPagos($presupuestoEntity->cliente_id);
|
||||||
|
|
||||||
$this->viewData['boxTitle'] = lang('Basic.global.edit2') . ' ' . $this->viewData['pageTitle'] . ' ' . lang('Basic.global.edit3');
|
$this->viewData['boxTitle'] = lang('Basic.global.edit2') . ' ' . $this->viewData['pageTitle'] . ' ' . lang('Basic.global.edit3');
|
||||||
|
|
||||||
return $this->displayForm(__METHOD__, $id);
|
return $this->displayForm(__METHOD__, $id);
|
||||||
|
|||||||
@ -29,13 +29,14 @@ class Test extends BaseController
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private function index()
|
public function index()
|
||||||
{
|
{
|
||||||
$this->emailService = service('emailService');
|
$clienteModel = model('App\Models\Clientes\ClienteModel');
|
||||||
|
$datos = $clienteModel->getResumenPagos(1870);
|
||||||
$a= $this->emailService->send('prueba', 'Esto es una prueba', ['imnavajas@coit.es','imnavajas@gmail.com']);
|
echo '<pre>';
|
||||||
|
var_dump($datos);
|
||||||
echo var_dump($a);
|
echo '</pre>';
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -332,6 +332,8 @@ return [
|
|||||||
'tiradaImpresion' => 'Coste Impresión',
|
'tiradaImpresion' => 'Coste Impresión',
|
||||||
'duplicado' => 'DUPLICADO',
|
'duplicado' => 'DUPLICADO',
|
||||||
|
|
||||||
|
'credito' => 'Crédito',
|
||||||
|
|
||||||
'duplicarConTipologias' => 'El presupuesto contiene lineas de presupuesto con datos de tipologías. Se va a duplicar el presupuesto con las mismas tipologías',
|
'duplicarConTipologias' => 'El presupuesto contiene lineas de presupuesto con datos de tipologías. Se va a duplicar el presupuesto con las mismas tipologías',
|
||||||
|
|
||||||
'presupuestoDuplicadoActualizacion' => 'El presupuesto ha sido creado duplicando un presupuesto existente. Se han actualizado los precios y las líneas de presupuesto con las tarifas actuales. Por favor, revíse la información.',
|
'presupuestoDuplicadoActualizacion' => 'El presupuesto ha sido creado duplicando un presupuesto existente. Se han actualizado los precios y las líneas de presupuesto con las tarifas actuales. Por favor, revíse la información.',
|
||||||
|
|||||||
@ -498,4 +498,98 @@ class ClienteModel extends \App\Models\BaseModel
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getResumenPagos($cliente_id = -1){
|
||||||
|
|
||||||
|
$result = [];
|
||||||
|
$data = $this->db->table('facturas f')
|
||||||
|
->select('sum(f.pendiente) as total')
|
||||||
|
->where('f.cliente_id', $cliente_id)
|
||||||
|
->where('f.deleted_at IS NULL')
|
||||||
|
->where('f.estado', 'validada')
|
||||||
|
->where('f.estado_pago', 'pendiente')
|
||||||
|
->get()
|
||||||
|
->getResultObject();
|
||||||
|
$result['total_facturas_sin_pagar'] =
|
||||||
|
round(floatval(($data && $data[0]->total != null) ? $data[0]->total : 0), 2);
|
||||||
|
|
||||||
|
$data = $this->db->table('facturas_pagos fp')
|
||||||
|
->select('sum(fp.total) as total')
|
||||||
|
->join('facturas f', 'fp.factura_id = f.id', 'left')
|
||||||
|
->where('f.cliente_id', $cliente_id)
|
||||||
|
->where('f.estado_pago', 'pendiente')
|
||||||
|
->where('fp.fecha_pago_at IS NOT NULL')
|
||||||
|
->where('fp.deleted_at IS NULL')
|
||||||
|
->where('f.deleted_at IS NULL')
|
||||||
|
->get()
|
||||||
|
->getResultObject();
|
||||||
|
$result['total_facturas_pagadas'] =
|
||||||
|
round(floatval(($data && $data[0]->total != null) ? $data[0]->total : 0), 2);
|
||||||
|
|
||||||
|
$data = $this->db->table('facturas f')
|
||||||
|
->select('sum(fp.total) as total')
|
||||||
|
->join('facturas_pagos fp', 'fp.factura_id = f.id', 'left')
|
||||||
|
->where('f.cliente_id', $cliente_id)
|
||||||
|
->where('f.estado_pago', 'pendiente')
|
||||||
|
->where('fp.fecha_vencimiento_at <', date('Y-m-d'))
|
||||||
|
->where('fp.fecha_pago_at IS NULL')
|
||||||
|
->where('f.deleted_at IS NULL')
|
||||||
|
->where('fp.deleted_at IS NULL')
|
||||||
|
->get()
|
||||||
|
->getResultObject();
|
||||||
|
$result['total_facturas_vencidas'] =
|
||||||
|
round(floatval(($data && $data[0]->total != null) ? $data[0]->total : 0), 2);
|
||||||
|
|
||||||
|
// Subconsulta para verificar la existencia en facturas_lineas
|
||||||
|
$subquery_facturas = "(SELECT 1
|
||||||
|
FROM facturas_lineas fl
|
||||||
|
JOIN facturas f2 ON fl.factura_id = f2.id
|
||||||
|
WHERE (fl.pedido_linea_impresion_id = p.id OR fl.pedido_maquetacion_id = p.id)
|
||||||
|
AND f2.estado = 'validada')";
|
||||||
|
|
||||||
|
|
||||||
|
// Subconsulta para calcular el total de pedidos en produccion
|
||||||
|
$data = $this->db->table('pedidos p')
|
||||||
|
->select('SUM(p.total_precio) as total', false)
|
||||||
|
->join('pedidos_linea pl', 'p.id = pl.pedido_id', 'left')
|
||||||
|
->join('presupuestos pr', 'pl.presupuesto_id = pr.id', 'left')
|
||||||
|
->where('pr.cliente_id', $cliente_id)
|
||||||
|
->whereIn('p.estado', ['produccion'])
|
||||||
|
->where("NOT EXISTS $subquery_facturas", null, false) // Implementación manual de NOT EXISTS
|
||||||
|
->get()
|
||||||
|
->getResultObject();
|
||||||
|
$query = $this->db->getLastQuery();
|
||||||
|
$result['total_pedidos_produccion'] =
|
||||||
|
round(floatval(($data && $data[0]->total != null) ? $data[0]->total : 0), 2);
|
||||||
|
|
||||||
|
// Subconsulta para calcular el total de pedidos finalizados
|
||||||
|
$data = $this->db->table('pedidos p')
|
||||||
|
->select('SUM(p.total_precio) as total', false)
|
||||||
|
->join('pedidos_linea pl', 'p.id = pl.pedido_id', 'left')
|
||||||
|
->join('presupuestos pr', 'pl.presupuesto_id = pr.id', 'left')
|
||||||
|
->where('pr.cliente_id', $cliente_id)
|
||||||
|
->whereIn('p.estado', ['finalizado', 'enviado'])
|
||||||
|
->where("NOT EXISTS $subquery_facturas", null, false) // Implementación manual de NOT EXISTS
|
||||||
|
->get()
|
||||||
|
->getResultObject();
|
||||||
|
$result['total_pedidos_finalizados'] =
|
||||||
|
round(floatval(($data && $data[0]->total != null) ? $data[0]->total : 0), 2);
|
||||||
|
|
||||||
|
$result['total_pendiente'] =
|
||||||
|
$result['total_facturas_sin_pagar']
|
||||||
|
+ $result['total_pedidos_produccion']
|
||||||
|
+ $result['total_pedidos_finalizados'];
|
||||||
|
$result['total_pendiente'] = round(floatval($result['total_pendiente']), 2);
|
||||||
|
|
||||||
|
$result['limite_credito'] = $this->db->table('clientes')
|
||||||
|
->select('limite_credito')
|
||||||
|
->where('id', $cliente_id)
|
||||||
|
->where('is_deleted', 0)
|
||||||
|
->get()
|
||||||
|
->getResultObject()[0]->limite_credito;
|
||||||
|
$result['limite_credito'] = round(floatval($result['limite_credito']), 2);
|
||||||
|
|
||||||
|
$result['margen_disponible'] = round(floatval( $result['limite_credito']-$result['total_pendiente']), 2);
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -22,8 +22,12 @@
|
|||||||
<tbody></tbody>
|
<tbody></tbody>
|
||||||
<tfoot>
|
<tfoot>
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan="6" style="text-align:right">Total:</td>
|
<td colspan="6" style="text-align:right">Total cobrado:</td>
|
||||||
<td id="totalCobrado-sum"></td>
|
<td><span id="totalCobrado-sum" class="autonumeric"></span></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td colspan="6" style="text-align:right">Total pendiente:</td>
|
||||||
|
<td><span id="pendienteCobro-sum" class="autonumeric"></span></td>
|
||||||
</tr>
|
</tr>
|
||||||
</tfoot>
|
</tfoot>
|
||||||
</table>
|
</table>
|
||||||
@ -225,21 +229,38 @@ var tablePagos = $('#tableOfLineasPagos').DataTable({
|
|||||||
footerCallback: function (row, data, start, end, display) {
|
footerCallback: function (row, data, start, end, display) {
|
||||||
var api = this.api();
|
var api = this.api();
|
||||||
|
|
||||||
// Remove the formatting to get integer data for summation
|
|
||||||
var intVal = function (i) {
|
var intVal = function (i) {
|
||||||
|
// Convertir a número o devolver 0 si no es válido
|
||||||
return typeof i === 'string' ? i.replace(/[\$,]/g, '')*1 : typeof i === 'number' ? i : 0;
|
return typeof i === 'string' ? i.replace(/[\$,]/g, '')*1 : typeof i === 'number' ? i : 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
// Total over all pages
|
var filas = [];
|
||||||
var totalPagos = api
|
api.rows().every(function() {
|
||||||
.column(6)
|
var data = this.data();
|
||||||
.data()
|
if (data['fecha_pago_at'] !== undefined && data['fecha_pago_at'] !== null && data['fecha_pago_at'] !== '') {
|
||||||
.reduce(function (a, b) {
|
filas.push(data); // Agregar la fila a la variable
|
||||||
return intVal(a) + intVal(b);
|
}
|
||||||
|
});
|
||||||
|
var totalPagos = filas
|
||||||
|
.reduce(function(a, data) {
|
||||||
|
return a + intVal(data['total']); // Aquí asumimos que la columna 6 está en el índice 5
|
||||||
|
}, 0);
|
||||||
|
|
||||||
|
var filas = [];
|
||||||
|
api.rows().every(function() {
|
||||||
|
var data = this.data();
|
||||||
|
if (data['fecha_pago_at'] === undefined || data['fecha_pago_at'] === null || data['fecha_pago_at'] === '') {
|
||||||
|
filas.push(data); // Agregar la fila a la variable
|
||||||
|
}
|
||||||
|
});
|
||||||
|
var totalPendiente = filas
|
||||||
|
.reduce(function(a, data) {
|
||||||
|
return a + intVal(data['total']); // Aquí asumimos que la columna 6 está en el índice 5
|
||||||
}, 0);
|
}, 0);
|
||||||
|
|
||||||
// Update footer
|
// Update footer
|
||||||
$('#totalCobrado-sum').html(totalPagos.toFixed(2));
|
$('#totalCobrado-sum').html(totalPagos.toFixed(2));
|
||||||
|
$('#pendienteCobro-sum').html(totalPendiente.toFixed(2));
|
||||||
|
|
||||||
// call footerCallback of the other table
|
// call footerCallback of the other table
|
||||||
if (typeof tableLineas !== 'undefined') {
|
if (typeof tableLineas !== 'undefined') {
|
||||||
|
|||||||
@ -0,0 +1,99 @@
|
|||||||
|
<div class="accordion accordion-bordered mt-3 col-xl-6 " id="accordionCredito">
|
||||||
|
<div class="card accordion-item active">
|
||||||
|
<h2 class="accordion-header" id="headingOne">
|
||||||
|
<button type="button" class="accordion-button" data-bs-toggle="collapse"
|
||||||
|
data-bs-target="#accordionCreditoTip" aria-expanded="false" aria-controls="accordionCreditoTip">
|
||||||
|
<h4><?= lang("Presupuestos.credito") ?></h4>
|
||||||
|
</button>
|
||||||
|
</h2>
|
||||||
|
|
||||||
|
<div id="accordionCreditoTip" class="accordion-collapse collapse show" data-bs-parent="#accordionCredito">
|
||||||
|
<div class="accordion-body">
|
||||||
|
|
||||||
|
<div class="col-xl-12">
|
||||||
|
<div class="table-responsive text-nowrap">
|
||||||
|
<table class="table table-bordered">
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td><?= lang('Presupuestos.clienteId') ?></td>
|
||||||
|
<td>
|
||||||
|
<button type="button" class="btn btn-label-primary waves-effect"
|
||||||
|
onclick="window.open('<?= route_to('editarCliente', $presupuestoEntity->cliente_id) ?>', '_blank');">
|
||||||
|
Ir a cliente</button>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Facturas sin pagar: </td>
|
||||||
|
<td class="right">
|
||||||
|
<span class="autonumeric autonumeric-currency">
|
||||||
|
<?= $credito['total_facturas_sin_pagar'] ?>
|
||||||
|
</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Facturas pagadas: </td>
|
||||||
|
<td class="right">
|
||||||
|
<span class="autonumeric autonumeric-currency">
|
||||||
|
<?= $credito['total_facturas_pagadas'] ?>
|
||||||
|
</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Pagos vencidos: </td>
|
||||||
|
<td class="right">
|
||||||
|
<span class="autonumeric autonumeric-currency">
|
||||||
|
<?= $credito['total_facturas_vencidas'] ?>
|
||||||
|
</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Pedidos produccion: </td>
|
||||||
|
<td class="right">
|
||||||
|
<span class="autonumeric autonumeric-currency">
|
||||||
|
<?= $credito['total_pedidos_produccion'] ?>
|
||||||
|
</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Pedidos finalizados: </td>
|
||||||
|
<td class="right">
|
||||||
|
<span class="autonumeric autonumeric-currency">
|
||||||
|
<?= $credito['total_pedidos_finalizados'] ?>
|
||||||
|
</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Total pendiente: </td>
|
||||||
|
<td class="right">
|
||||||
|
<span class="autonumeric autonumeric-currency">
|
||||||
|
<?= $credito['total_pendiente'] ?>
|
||||||
|
</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Límite crédito: </td>
|
||||||
|
<td class="right">
|
||||||
|
<span class="autonumeric autonumeric-currency">
|
||||||
|
<?= $credito['limite_credito'] ?>
|
||||||
|
</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><span class="fw-bold">Margen disponible:</span></td>
|
||||||
|
<td class="right">
|
||||||
|
<span class="autonumeric autonumeric-currency fw-bold
|
||||||
|
<?= $credito['margen_disponible'] < 0 ? 'text-danger' : 'text-success' ?>">
|
||||||
|
<?= $credito['margen_disponible'] ?>
|
||||||
|
</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div> <!-- //.accordion-body -->
|
||||||
|
</div> <!-- //.accordion-collapse -->
|
||||||
|
</div> <!-- //.accordion-item -->
|
||||||
|
</div> <!-- //.accordion -->
|
||||||
@ -1,4 +1,4 @@
|
|||||||
<div class="accordion accordion-bordered mt-3 col-xl-4" id="accordionResumen">
|
<div class="accordion accordion-bordered mt-3" id="accordionResumen">
|
||||||
<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"
|
||||||
@ -18,57 +18,57 @@
|
|||||||
<!-- 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 id="totalCostePapel" class="py-1 col-6 text-end"></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 id="porcentajeMargenPapel" class="col-3 text-end py-1"></dd>
|
<dd class="col-3 text-end py-1"><span id="porcentajeMargenPapel" class="autonumeric-resumen-percent"></span></dd>
|
||||||
<dd id="margenPapel" class="col-3 text-end py-1"></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 id="totalCosteImpresion" class="col-6 text-end"></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 id="porcentajeMargenImpresion" class="col-3 text-end py-1"></dd>
|
<dd class="col-3 text-end py-1"><span id="porcentajeMargenImpresion" class="autonumeric-resumen-percent"></span></dd>
|
||||||
<dd id="margenImpresion" class="col-3 py-1 text-end"></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 id="totalServicios" class="col-6 text-end py-1"></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 id="porcentajeMargenServicios" class="col-3 text-end py-1"></dd>
|
<dd class="col-3 text-end py-1 "><span id="porcentajeMargenServicios" class="autonumeric-resumen-percent"></span></dd>
|
||||||
<dd id="margenServicios" class="col-3 text-end py-1"></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 id="costeEnvios" class="col-6 text-end py-1"></dd>
|
<dd class="col-6 text-end py-1 "><span id="costeEnvios" class="autonumeric-resumen-currency"></span></sp>
|
||||||
<dt class="col-5 fw-normal text-end">Precio de envío</dt>
|
<dt class="col-5 fw-normal text-end">Precio de envío</dt>
|
||||||
<dd id="totalEnvios" class="col-6 text-end py-1"></dd>
|
<dd class="col-6 text-end py-1 "><span id="totalEnvios" 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 id="margenEnvios" class="col-6 text-end py-1"></dd>
|
<dd class="col-6 text-end py-1 "><span id="margenEnvios" class="autonumeric-resumen-currency"></span></sp>
|
||||||
</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 id="totalCostes" class="col-6 text-end"></dd>
|
<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 id="porcentajeMargen" class="col-3 text-end py-1"></dd>
|
<dd class="col-3 text-end py-1"><span id="porcentajeMargen" class="autonumeric-resumen-percent"></span></dd>
|
||||||
<dd id="totalMargenes" class="col-3 text-end py-1"></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</dt>
|
||||||
<dd id="totalAntesDescuento" class="col-6 text-end"></dd>
|
<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" value="" class="update-totales form-control" style="width:100% !important;"></dd>
|
||||||
<dd id="descuentoTotal" class="col-3 py-1 text-end"></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 id="totalDespuesDecuento" class="col-6 fw-semibold text-end"></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 id="precioUnidadPresupuesto" class="col-6 text-end mb-2"></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 id="factor" class="col-6 text-end mb-2" style="font-size: smaller !important;"></dd>
|
<dd class="col-6 text-end mb-2 "><span id="factor" 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>
|
<dt class="col-5 fw-normal text-end" style="font-size: smaller !important;">Factor Ponderado</dt>
|
||||||
<dd id="factor_ponderado" class="col-6 text-end mb-0" style="font-size: smaller !important;"></dd>
|
<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">
|
||||||
@ -98,7 +98,7 @@
|
|||||||
<label for="totalAceptado" class="form-label">
|
<label for="totalAceptado" class="form-label">
|
||||||
<?= lang('Presupuestos.totalAceptado') ?>
|
<?= lang('Presupuestos.totalAceptado') ?>
|
||||||
</label>
|
</label>
|
||||||
<input disabled type="text" id="totalAceptado" name="totalAceptado" class="form-control" value="" <?php echo ($tipo_impresion_id == 21) ? ' max=80' : '' ?>>
|
<input disabled type="text" id="totalAceptado" name="totalAceptado" class="form-control autonumeric-resumen-currency" value="" <?php echo ($tipo_impresion_id == 21) ? ' max=80' : '' ?>>
|
||||||
</div><!--//.mb-3 -->
|
</div><!--//.mb-3 -->
|
||||||
</div>
|
</div>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
<div class="accordion accordion-bordered mt-3 col-xl-8" id="accordionTiradas">
|
<div class="accordion accordion-bordered mt-3" id="accordionTiradas">
|
||||||
<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"
|
||||||
|
|||||||
@ -66,9 +66,17 @@
|
|||||||
<?php if ($presupuestoEntity->estado_id == 2) : ?>
|
<?php if ($presupuestoEntity->estado_id == 2) : ?>
|
||||||
<?= view("themes/vuexy/components/dropzone",data: ['id' => 'dropzone-presupuesto-admin-files','modelId' => $presupuestoId]) ?>
|
<?= view("themes/vuexy/components/dropzone",data: ['id' => 'dropzone-presupuesto-admin-files','modelId' => $presupuestoId]) ?>
|
||||||
<?php endif ?>
|
<?php endif ?>
|
||||||
<?= view("themes/vuexy/form/presupuestos/admin/_resumenPresupuestoItems") ?>
|
<div class="container">
|
||||||
<?= view("themes/vuexy/form/presupuestos/admin/_tiradasAlternativasItems") ?>
|
<div class="row px-0">
|
||||||
|
<div class="col-xl-4" style="padding-left: 0;">
|
||||||
|
<?= view("themes/vuexy/form/presupuestos/admin/_resumenPresupuestoItems") ?>
|
||||||
|
</div>
|
||||||
|
<div class="col-xl-8" style="padding-right: 0;">
|
||||||
|
<?= view("themes/vuexy/form/presupuestos/admin/_tiradasAlternativasItems") ?>
|
||||||
|
<?= view("themes/vuexy/form/presupuestos/admin/_resumenCreditoItems") ?>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<?php else: ?>
|
<?php else: ?>
|
||||||
<input type="hidden" name="total_presupuesto" id="total_presupuesto" class="form-control"
|
<input type="hidden" name="total_presupuesto" id="total_presupuesto" class="form-control"
|
||||||
value="0.0"></input>
|
value="0.0"></input>
|
||||||
|
|||||||
@ -65,7 +65,7 @@ export const toastPresupuestoSummary = (value, target = 'body') => {
|
|||||||
html: `
|
html: `
|
||||||
<div class="d-flex flex-column p-0 m-0">
|
<div class="d-flex flex-column p-0 m-0">
|
||||||
<p class="m-0">Total presupuesto</p>
|
<p class="m-0">Total presupuesto</p>
|
||||||
<span class="badge badge-label-primary fs-small">${value}</span>
|
<span class="badge badge-label-primary fs-small autonumeric-resumen-currency">${value}</span>
|
||||||
</div>`,
|
</div>`,
|
||||||
customClass: {
|
customClass: {
|
||||||
popup: 'bg-primary text-white',
|
popup: 'bg-primary text-white',
|
||||||
|
|||||||
@ -80,6 +80,9 @@ class PresupuestoAdminEdit {
|
|||||||
document.querySelector('.select2-search__field').focus();
|
document.querySelector('.select2-search__field').focus();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Autonumeric
|
||||||
|
AutoNumeric.multiple('.autonumeric-currency', { decimalPlaces: 2, currencySymbol: '€', currencySymbolPlacement: 's', digitGroupSeparator: '.', decimalCharacter: ',' });
|
||||||
|
|
||||||
const impresion_id = $('#tipo_impresion_id').val();
|
const impresion_id = $('#tipo_impresion_id').val();
|
||||||
let tipoLibro = '';
|
let tipoLibro = '';
|
||||||
if (impresion_id == 1 || impresion_id == 2) {
|
if (impresion_id == 1 || impresion_id == 2) {
|
||||||
|
|||||||
@ -24,40 +24,67 @@ class Resumen {
|
|||||||
cargar(resumen) {
|
cargar(resumen) {
|
||||||
|
|
||||||
// Mapear los valores a los elementos HTML por ID
|
// Mapear los valores a los elementos HTML por ID
|
||||||
$("#totalCostePapel").text(resumen.total_coste_papel.toString().replace('.', ',') + "€" || "0€");
|
$("#totalCostePapel").val(resumen.total_coste_papel || 0);
|
||||||
$("#porcentajeMargenPapel").text(resumen.total_margenPercent_papel ? resumen.total_margenPercent_papel.toString().replace('.', ',') + "%" : "0%");
|
$("#totalCostePapel").html(resumen.total_coste_papel || 0);
|
||||||
$("#margenPapel").text(resumen.total_margen_papel.toString().replace('.', ',') + "€" || "0€");
|
$("#porcentajeMargenPapel").val(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").html(resumen.total_margen_papel || 0);
|
||||||
|
|
||||||
$("#totalCosteImpresion").text(resumen.total_coste_impresion.toString().replace('.', ',') + "€" || "0€");
|
$("#totalCosteImpresion").val(resumen.total_coste_impresion || 0);
|
||||||
$("#porcentajeMargenImpresion").text(resumen.total_margenPercent_impresion ? resumen.total_margenPercent_impresion.toString().replace('.', ',') + "%" : "0%");
|
$("#totalCosteImpresion").html(resumen.total_coste_impresion || 0);
|
||||||
$("#margenImpresion").text(resumen.total_margen_impresion.toString().replace('.', ',') + "€" || "0€");
|
$("#porcentajeMargenImpresion").val(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").html(resumen.total_margen_impresion || 0);
|
||||||
|
|
||||||
$("#totalServicios").text(resumen.total_coste_servicios.toString().replace('.', ',') + "€" || "0€");
|
$("#totalServicios").html(resumen.total_coste_servicios || 0);
|
||||||
$("#porcentajeMargenServicios").text(resumen.total_margenPercent_servicios ? resumen.total_margenPercent_servicios.toString().replace('.', ',') + "%" : "0%");
|
$("#totalServicios").val(resumen.total_coste_servicios || 0);
|
||||||
$("#margenServicios").text(resumen.total_margen_servicios + "€" || "0€");
|
$("#porcentajeMargenServicios").val(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").html(resumen.total_margen_servicios || 0);
|
||||||
|
|
||||||
//$("#costeEnvios").text(resumen.total_coste_envios + "€" || "0€");
|
$("#costeEnvios").html(resumen.total_coste_envios || 0);
|
||||||
$("#totalEnvios").text(resumen.total_coste_envios.toString().replace('.', ',') + "€" || "0€");
|
$("#costeEnvios").val(resumen.total_coste_envios || 0);
|
||||||
$("#margenEnvios").text(resumen.total_margen_envios.toString().replace('.', ',') + "€" || "0€");
|
$("#totalEnvios").html(resumen.total_coste_envios || 0);
|
||||||
|
$("#totalEnvios").val(resumen.total_coste_envios || 0);
|
||||||
|
$("#margenEnvios").html(resumen.total_margen_envios || 0);
|
||||||
|
$("#margenEnvios").val(resumen.total_margen_envios || 0);
|
||||||
|
|
||||||
$("#totalCostes").text(resumen.total_costes.toString().replace('.', ',') + "€" || "0€");
|
$("#totalCostes").html(resumen.total_costes || 0);
|
||||||
$("#porcentajeMargen").text(resumen.porcentajeMargen ? resumen.porcentajeMargen.toString().replace('.', ',') + "%" : "0%");
|
$("#porcentajeMargen").html(resumen.porcentajeMargen ? resumen.porcentajeMargen: 0);
|
||||||
$("#totalMargenes").text(resumen.total_margenes.toString().replace('.', ',') + "€" || "0€");
|
$("#totalMargenes").html(resumen.total_margenes || 0);
|
||||||
|
$("#totalCostes").val(resumen.total_costes || 0);
|
||||||
|
$("#porcentajeMargen").val(resumen.porcentajeMargen ? resumen.porcentajeMargen: 0);
|
||||||
|
$("#totalMargenes").val(resumen.total_margenes || 0);
|
||||||
|
|
||||||
$("#totalAntesDescuento").text(resumen.total_antes_descuento.toString().replace('.', ',') + "€" || "0€");
|
$("#totalAntesDescuento").html(resumen.total_antes_descuento || 0);
|
||||||
$("#total_descuentoPercent").val(resumen.total_descuentoPercent.toString().replace('.', ',') || "0");
|
$("#total_descuentoPercent").val(resumen.total_descuentoPercent || 0);
|
||||||
$("#descuentoTotal").text(resumen.total_descuento.toString().replace('.', ',') + "€" || "0€");
|
$("#descuentoTotal").html(resumen.total_descuento || 0);
|
||||||
$("#totalDespuesDecuento").text(resumen.total_presupuesto.toString().replace('.', ',') + "€" || "0€").trigger("change")
|
$("#totalDespuesDecuento").html(resumen.total_presupuesto || 0).trigger("change")
|
||||||
$("#precioUnidadPresupuesto").text(resumen.total_precio_unidad.toString().replace('.', ',') + "€" || "0€");
|
$("#precioUnidadPresupuesto").html(resumen.total_precio_unidad || 0);
|
||||||
$("#factor").text(resumen.total_factor.toString().replace('.', ',') || "0");
|
$("#factor").html(resumen.total_factor|| 0);
|
||||||
$("#factor_ponderado").text(resumen.total_factor_ponderado.toString().replace('.', ',') || "0");
|
$("#factor_ponderado").html(resumen.total_factor_ponderado|| 0);
|
||||||
|
$("#totalAntesDescuento").val(resumen.total_antes_descuento || 0);
|
||||||
|
$("#descuentoTotal").val(resumen.total_descuento || 0);
|
||||||
|
$("#totalDespuesDecuento").val(resumen.total_presupuesto || 0).trigger("change")
|
||||||
|
$("#precioUnidadPresupuesto").val(resumen.total_precio_unidad || 0);
|
||||||
|
$("#factor").val(resumen.total_factor|| 0);
|
||||||
|
$("#factor_ponderado").val(resumen.total_factor_ponderado|| 0);
|
||||||
|
|
||||||
if (resumen.total_aceptado !== undefined) {
|
if (resumen.total_aceptado !== undefined) {
|
||||||
$("#totalAceptado").val(resumen.total_aceptado.toString().replace('.', ',') + "€" || "0€");
|
$("#totalAceptado").html(resumen.total_aceptado || 0);
|
||||||
|
$("#totalAceptado").val(resumen.total_aceptado || 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
$('#ivaReducido').val(resumen.iva_reducido ? 1 : 0);
|
$('#ivaReducido').val(resumen.iva_reducido ? 1 : 0);
|
||||||
|
|
||||||
|
AutoNumeric.multiple('.autonumeric-resumen-currency', { decimalPlaces: 2, currencySymbol: '€', currencySymbolPlacement: 's', digitGroupSeparator: '.', decimalCharacter: ',' });
|
||||||
|
AutoNumeric.multiple('.autonumeric-resumen-currency-4', { decimalPlaces: 4, currencySymbol: '€', currencySymbolPlacement: 's', digitGroupSeparator: '.', decimalCharacter: ',' });
|
||||||
|
AutoNumeric.multiple('.autonumeric-resumen-percent', { decimalPlaces: 0, currencySymbol: '%', currencySymbolPlacement: 's', digitGroupSeparator: '.', decimalCharacter: ',' });
|
||||||
|
AutoNumeric.multiple('.autonumeric-resumen-2', { decimalPlaces: 2, digitGroupSeparator: '.', decimalCharacter: ',' });
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
update() {
|
update() {
|
||||||
@ -65,21 +92,6 @@ class Resumen {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Formatear agregando separadores de miles
|
|
||||||
addSeparatorsNF(nStr, inD, outD, sep) {
|
|
||||||
nStr += '';
|
|
||||||
let dpos = nStr.indexOf(inD);
|
|
||||||
let nStrEnd = '';
|
|
||||||
if (dpos != -1) {
|
|
||||||
nStrEnd = outD + nStr.substring(dpos + 1, nStr.length);
|
|
||||||
nStr = nStr.substring(0, dpos);
|
|
||||||
}
|
|
||||||
let rgx = /(\d+)(\d{3})/;
|
|
||||||
while (rgx.test(nStr)) {
|
|
||||||
nStr = nStr.replace(rgx, '$1' + sep + '$2');
|
|
||||||
}
|
|
||||||
return nStr + nStrEnd;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
async updateTotales(event, data = {}) {
|
async updateTotales(event, data = {}) {
|
||||||
@ -158,18 +170,17 @@ class Resumen {
|
|||||||
sumForFactor += totalPapel;
|
sumForFactor += totalPapel;
|
||||||
|
|
||||||
let porcentajeMargenPapel = isNaN(margenPapel / (totalPapel) * 100.0) ? 0 : margenPapel / (totalPapel) * 100.0
|
let porcentajeMargenPapel = isNaN(margenPapel / (totalPapel) * 100.0) ? 0 : margenPapel / (totalPapel) * 100.0
|
||||||
$('#porcentajeMargenPapel').text(porcentajeMargenPapel.toFixed(0) + '%')
|
$('#porcentajeMargenPapel').html(porcentajeMargenPapel)
|
||||||
$('#totalCostePapel').text((this.addSeparatorsNF(totalPapel.toFixed(2), ".", ",", ".")) + "€")
|
$('#totalCostePapel').val(totalPapel.toFixed(2))
|
||||||
$('#margenPapel').text((this.addSeparatorsNF(margenPapel.toFixed(2), ".", ",", ".")) + "€")
|
$('#totalCostePapel').html(totalPapel)
|
||||||
$('#totalCostePapel').attr('val', totalPapel.toFixed(2))
|
$('#margenPapel').val(margenPapel.toFixed(2))
|
||||||
$('#margenPapel').attr('val', margenPapel.toFixed(2))
|
$('#margenPapel').html(margenPapel)
|
||||||
|
|
||||||
let porcentajeMargenImpresion = isNaN(margenImpresion / (totalImpresion) * 100.0) ? 0 : margenImpresion / (totalImpresion) * 100.0
|
let porcentajeMargenImpresion = isNaN(margenImpresion / (totalImpresion) * 100.0) ? 0 : margenImpresion / (totalImpresion) * 100.0
|
||||||
$('#porcentajeMargenImpresion').text(porcentajeMargenImpresion.toFixed(0) + '%')
|
$('#porcentajeMargenImpresion').html(porcentajeMargenImpresion).val(porcentajeMargenImpresion.toFixed(2))
|
||||||
$('#totalCosteImpresion').text((this.addSeparatorsNF(totalImpresion.toFixed(2), ".", ",", ".")) + "€")
|
$('#totalCosteImpresion').html(totalImpresion).val(totalImpresion.toFixed(2))
|
||||||
$('#margenImpresion').text((this.addSeparatorsNF(margenImpresion.toFixed(2), ".", ",", ".")) + "€")
|
$('#margenImpresion').html(margenImpresion).val(margenImpresion.toFixed(2))
|
||||||
$('#totalCosteImpresion').attr('val', totalImpresion.toFixed(2))
|
|
||||||
$('#margenImpresion').attr('val', margenImpresion.toFixed(2))
|
|
||||||
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -246,11 +257,9 @@ class Resumen {
|
|||||||
sumForFactorPonderado += totalServicios;
|
sumForFactorPonderado += totalServicios;
|
||||||
|
|
||||||
let porcentajeMargenServicios = margenServicios / (totalServicios) * 100
|
let porcentajeMargenServicios = margenServicios / (totalServicios) * 100
|
||||||
$('#porcentajeMargenServicios').text(isNaN(porcentajeMargenServicios.toFixed(0)) ? 0 : porcentajeMargenServicios.toFixed(0) + '%')
|
$('#porcentajeMargenServicios').html(isNaN(porcentajeMargenServicios) ? 0 : porcentajeMargenServicios)
|
||||||
$('#totalServicios').text((this.addSeparatorsNF(totalServicios.toFixed(2), ".", ",", ".")) + "€")
|
$('#totalServicios').html(totalServicios).val(totalServicios.toFixed(2))
|
||||||
$('#margenServicios').text((this.addSeparatorsNF(margenServicios.toFixed(2), ".", ",", ".")) + "€")
|
$('#margenServicios').html(margenServicios).val(margenServicios.toFixed(2))
|
||||||
$('#totalServicios').attr('val', totalServicios.toFixed(2) + '€')
|
|
||||||
$('#margenServicios').attr('val', margenServicios.toFixed(2) + '€')
|
|
||||||
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -277,10 +286,9 @@ class Resumen {
|
|||||||
}
|
}
|
||||||
|
|
||||||
totalEnvios -= margenEnvios
|
totalEnvios -= margenEnvios
|
||||||
$('#totalEnvios').text((this.addSeparatorsNF(totalEnvios.toFixed(2), ".", ",", ".")) + "€")
|
$('#totalEnvios').html(totalEnvios_base).val(totalEnvios_base.toFixed(2))
|
||||||
$('#margenEnvios').text((this.addSeparatorsNF(margenEnvios.toFixed(2), ".", ",", ".")) + "€")
|
$('#costeEnvios').html(totalEnvios).val(totalEnvios.toFixed(2))
|
||||||
$('#totalEnvios').attr('val', totalEnvios.toFixed(2) + '€')
|
$('#margenEnvios').html(margenEnvios).val(margenEnvios.toFixed(2))
|
||||||
$('#margenEnvios').attr('val', margenEnvios.toFixed(2) + '€')
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
totalEnvios = parseFloat($('#totalEnvios').attr('val'))
|
totalEnvios = parseFloat($('#totalEnvios').attr('val'))
|
||||||
@ -290,12 +298,9 @@ class Resumen {
|
|||||||
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 porcentajeMargen = totalCostes + totalMargenes > 0 ? (100 * totalMargenes / (totalCostes + totalMargenes)).toFixed(0) : 0
|
||||||
$('#totalCostes').text((this.addSeparatorsNF(totalCostes.toFixed(2), ".", ",", ".")) + "€")
|
$('#totalCostes').html(totalCostes).val(totalCostes.toFixed(2))
|
||||||
$('#totalMargenes').text((this.addSeparatorsNF(totalMargenes.toFixed(2), ".", ",", ".")) + "€")
|
$('#totalMargenes').html(totalMargenes).val(totalMargenes.toFixed(2))
|
||||||
$('#totalCostes').attr('val', (totalCostes).toFixed(2) + '€')
|
$('#porcentajeMargen').html(porcentajeMargen).val(porcentajeMargen)
|
||||||
$('#totalMargenes').attr('val', (totalMargenes).toFixed(2) + '€')
|
|
||||||
$('#porcentajeMargen').text(porcentajeMargen + '%')
|
|
||||||
$('#porcentajeMargen').attr('val', porcentajeMargen)
|
|
||||||
|
|
||||||
if ($('#total_descuentoPercent').val() < 0) {
|
if ($('#total_descuentoPercent').val() < 0) {
|
||||||
$('#total_descuentoPercent').val(0)
|
$('#total_descuentoPercent').val(0)
|
||||||
@ -306,60 +311,60 @@ class Resumen {
|
|||||||
let precioUnidad = totalPresupuesto / parseInt($('#tirada').val())
|
let precioUnidad = totalPresupuesto / parseInt($('#tirada').val())
|
||||||
totalPresupuesto += totalEnvios;
|
totalPresupuesto += totalEnvios;
|
||||||
|
|
||||||
$('#totalAntesDescuento').text((this.addSeparatorsNF(totalAntesDescuento.toFixed(2), ".", ",", ".")) + "€")
|
$('#totalAntesDescuento').html(totalAntesDescuento).val(totalAntesDescuento.toFixed(2))
|
||||||
$('#descuentoTotal').text((this.addSeparatorsNF(totalDescuento.toFixed(2), ".", ",", ".")) + "€")
|
$('#descuentoTotal').html(totalDescuento).val(totalDescuento.toFixed(2))
|
||||||
$('#totalDespuesDecuento').text((this.addSeparatorsNF(totalPresupuesto.toFixed(2), ".", ",", ".")) + "€")
|
$('#totalDespuesDecuento').html(totalPresupuesto).val(totalPresupuesto.toFixed(2))
|
||||||
$('#precioUnidadPresupuesto').text((this.addSeparatorsNF(precioUnidad.toFixed(4), ".", ",", ".")) + "€")
|
$('#precioUnidadPresupuesto').html(precioUnidad).val(precioUnidad.toFixed(4))
|
||||||
$('#totalAntesDescuento').attr('val', (totalAntesDescuento).toFixed(2))
|
|
||||||
$('#descuentoTotal').attr('val', (totalDescuento).toFixed(2))
|
|
||||||
$('#totalDespuesDecuento').attr('val', (totalPresupuesto).toFixed(2))
|
|
||||||
$('#precioUnidadPresupuesto').attr('val', (precioUnidad).toFixed(4))
|
|
||||||
$('#totalDespuesDecuento').trigger("change")
|
$('#totalDespuesDecuento').trigger("change")
|
||||||
|
|
||||||
$('#factor').text(this.addSeparatorsNF(((totalPresupuesto - totalEnvios - totalEnvios_base - margenEnvios) / sumForFactor).toFixed(2), ".", ",", "."))
|
$('#factor').html(((totalPresupuesto - totalEnvios - totalEnvios_base - margenEnvios) / sumForFactor))
|
||||||
$('#factor').attr('val', ((totalPresupuesto - totalEnvios - totalEnvios_base - margenEnvios) / sumForFactor).toFixed(2))
|
$('#factor').val(((totalPresupuesto - totalEnvios - totalEnvios_base - margenEnvios) / sumForFactor).toFixed(2))
|
||||||
$('#factor_ponderado').text(this.addSeparatorsNF(((totalPresupuesto - totalEnvios - totalEnvios_base - margenEnvios) / sumForFactorPonderado).toFixed(2), ".", ",", "."))
|
$('#factor_ponderado').html(((totalPresupuesto - totalEnvios - totalEnvios_base - margenEnvios) / sumForFactorPonderado))
|
||||||
$('#factor_ponderado').attr('val', ((totalPresupuesto - totalEnvios - totalEnvios_base - margenEnvios) / sumForFactorPonderado).toFixed(2))
|
$('#factor_ponderado').val(((totalPresupuesto - totalEnvios - totalEnvios_base - margenEnvios) / sumForFactorPonderado).toFixed(2))
|
||||||
|
|
||||||
|
AutoNumeric.multiple('.autonumeric-resumen-currency', { decimalPlaces: 2, currencySymbol: '€', currencySymbolPlacement: 's', digitGroupSeparator: '.', decimalCharacter: ',' });
|
||||||
|
AutoNumeric.multiple('.autonumeric-resumen-currency-4', { decimalPlaces: 4, currencySymbol: '€', currencySymbolPlacement: 's', digitGroupSeparator: '.', decimalCharacter: ',' });
|
||||||
|
AutoNumeric.multiple('.autonumeric-resumen-percent', { decimalPlaces: 0, currencySymbol: '%', currencySymbolPlacement: 's', digitGroupSeparator: '.', decimalCharacter: ',' });
|
||||||
|
AutoNumeric.multiple('.autonumeric-resumen-2', { decimalPlaces: 2, digitGroupSeparator: '.', decimalCharacter: ',' });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
getData() {
|
getData() {
|
||||||
|
|
||||||
let data = {
|
let data = {
|
||||||
'total_coste_papel': $('#totalCostePapel').text().replace('€', '').replace(',', '.'),
|
'total_coste_papel': $('#totalCostePapel').val(),
|
||||||
'total_margen_papel': $('#margenPapel').text().replace('€', '').replace(',', '.'),
|
'total_margen_papel': $('#margenPapel').val(),
|
||||||
'total_margenPercent_papel': $('#porcentajeMargenPapel').text().replace('%', '').replace(',', '.'),
|
'total_margenPercent_papel': $('#porcentajeMargenPapel').val(),
|
||||||
|
|
||||||
'total_coste_impresion': $('#totalCosteImpresion').text().replace('€', '').replace(',', '.'),
|
'total_coste_impresion': $('#totalCosteImpresion').val(),
|
||||||
'total_margen_impresion': $('#margenImpresion').text().replace('€', '').replace(',', '.'),
|
'total_margen_impresion': $('#margenImpresion').val(),
|
||||||
'total_margenPercent_impresion': $('#porcentajeMargenImpresion').text().replace('%', '').replace(',', '.'),
|
'total_margenPercent_impresion': $('#porcentajeMargenImpresion').val(),
|
||||||
|
|
||||||
'total_coste_servicios': $('#totalServicios').text().replace('€', '').replace(',', '.'),
|
'total_coste_servicios': $('#totalServicios').val(),
|
||||||
'total_margen_servicios': $('#margenServicios').text().replace('€', '').replace(',', '.'),
|
'total_margen_servicios': $('#margenServicios').val(),
|
||||||
'total_margenPercent_servicios': $('#porcentajeMargenServicios').text().replace('%', '').replace(',', '.'),
|
'total_margenPercent_servicios': $('#porcentajeMargenServicios').val(),
|
||||||
|
|
||||||
'total_coste_envios': $('#totalEnvios').text().replace('€', '').replace(',', '.'),
|
'total_coste_envios': $('#totalEnvios').val(),
|
||||||
'total_margen_envios': $('#margenEnvios').text().replace('€', '').replace(',', '.'),
|
'total_margen_envios': $('#margenEnvios').val(),
|
||||||
|
|
||||||
'total_costes': $('#totalCostes').text().replace('€', '').replace(',', '.'),
|
'total_costes': $('#totalCostes').val(),
|
||||||
'total_margenes': $('#totalMargenes').text().replace('€', '').replace(',', '.'),
|
'total_margenes': $('#totalMargenes').val(),
|
||||||
|
|
||||||
'total_antes_descuento': $('#totalAntesDescuento').text().replace('€', '').replace(',', '.'),
|
'total_antes_descuento': $('#totalAntesDescuento').val(),
|
||||||
'total_descuento': $('#descuentoTotal').text().replace('€', '').replace(',', '.'),
|
'total_descuento': $('#descuentoTotal').val(),
|
||||||
'total_descuentoPercent': $('#total_descuentoPercent').val().replace('€', '').replace(',', '.'),
|
'total_descuentoPercent': $('#total_descuentoPercent').val(),
|
||||||
'total_presupuesto': $('#totalDespuesDecuento').text().replace('€', '').replace(',', '.'),
|
'total_presupuesto': $('#totalDespuesDecuento').val(),
|
||||||
'total_precio_unidad': $('#precioUnidadPresupuesto').text().replace('€', '').replace(',', '.'),
|
'total_precio_unidad': $('#precioUnidadPresupuesto').val(),
|
||||||
|
|
||||||
'total_factor': $('#factor').text().replace(/,/g, '.'),
|
'total_factor': $('#factor').val(),
|
||||||
'total_factor_ponderado': $('#factor_ponderado').text().replace(/,/g, '.'),
|
'total_factor_ponderado': $('#factor_ponderado').val(),
|
||||||
|
|
||||||
'iva_reducido': $('#ivaReducido').val()
|
'iva_reducido': $('#ivaReducido').val()
|
||||||
};
|
};
|
||||||
|
|
||||||
if ($('#confirmar_presupuesto').prop('checked')) {
|
if ($('#confirmar_presupuesto').prop('checked')) {
|
||||||
data.confirmar = '1';
|
data.confirmar = '1';
|
||||||
data.total_aceptado = $('#totalDespuesDecuento').text().replace('€', '').replace(',', '.');
|
data.total_aceptado = $('#totalDespuesDecuento').val();
|
||||||
}
|
}
|
||||||
|
|
||||||
return data;
|
return data;
|
||||||
@ -373,7 +378,7 @@ class Resumen {
|
|||||||
this.toastPresupuestoTotal.close()
|
this.toastPresupuestoTotal.close()
|
||||||
}
|
}
|
||||||
|
|
||||||
this.toastPresupuestoTotal = toastPresupuestoSummary($("#totalDespuesDecuento").text() ?? 0)
|
this.toastPresupuestoTotal = toastPresupuestoSummary($("#totalDespuesDecuento").html() ?? 0)
|
||||||
this.toastPresupuestoTotal.fire().then((result) => {
|
this.toastPresupuestoTotal.fire().then((result) => {
|
||||||
if (result.isDismissed && result.dismiss == 'close') {
|
if (result.isDismissed && result.dismiss == 'close') {
|
||||||
this.updateToastSummary()
|
this.updateToastSummary()
|
||||||
|
|||||||
Reference in New Issue
Block a user