mirror of
https://git.imnavajas.es/jjimenez/safekat.git
synced 2025-07-25 22:52:08 +00:00
con totales
This commit is contained in:
@ -758,6 +758,7 @@ $routes->group('pedidos', ['namespace' => 'App\Controllers\Pedidos'], function (
|
|||||||
$routes->get('xml/(:num)', 'Pedido::get_xml_pedido/$1', ['as' => 'getXMLPedido']);
|
$routes->get('xml/(:num)', 'Pedido::get_xml_pedido/$1', ['as' => 'getXMLPedido']);
|
||||||
$routes->post('produccion/(:num)', 'Pedido::to_produccion/$1', ['as' => 'toProduccion']);
|
$routes->post('produccion/(:num)', 'Pedido::to_produccion/$1', ['as' => 'toProduccion']);
|
||||||
$routes->get('pedidosCliente', 'Pedido::tablaClienteForm');
|
$routes->get('pedidosCliente', 'Pedido::tablaClienteForm');
|
||||||
|
$routes->get('getSumCliente/(:num)', 'Pedido::obtenerTotalPedidosCliente/$1');
|
||||||
});
|
});
|
||||||
$routes->resource('pedidos', ['namespace' => 'App\Controllers\Pedidos', 'controller' => 'Pedido', 'except' => 'show,new,create,update']);
|
$routes->resource('pedidos', ['namespace' => 'App\Controllers\Pedidos', 'controller' => 'Pedido', 'except' => 'show,new,create,update']);
|
||||||
|
|
||||||
|
|||||||
@ -10,6 +10,7 @@ use App\Services\PedidoXMLService;
|
|||||||
use App\Services\ProductionService;
|
use App\Services\ProductionService;
|
||||||
use Hermawan\DataTables\DataTable;
|
use Hermawan\DataTables\DataTable;
|
||||||
use CodeIgniter\I18n\Time;
|
use CodeIgniter\I18n\Time;
|
||||||
|
use Error;
|
||||||
|
|
||||||
class Pedido extends \App\Controllers\BaseResourceController
|
class Pedido extends \App\Controllers\BaseResourceController
|
||||||
{
|
{
|
||||||
@ -441,6 +442,29 @@ class Pedido extends \App\Controllers\BaseResourceController
|
|||||||
return $result->toJson(returnAsObject: true) ;
|
return $result->toJson(returnAsObject: true) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function obtenerTotalPedidosCliente($cliente_id){
|
||||||
|
|
||||||
|
$error = false;
|
||||||
|
$result = [
|
||||||
|
'total_impresion' => 0,
|
||||||
|
'total_maquetacion' => 0,
|
||||||
|
];
|
||||||
|
$data = $this->model
|
||||||
|
->where('presupuestos.cliente_id', $cliente_id)->whereNotIn('pedidos.estado', ['cancelado'])
|
||||||
|
->select('SUM(pedidos.total_precio) as total')
|
||||||
|
->join('pedidos_linea', 'pedidos_linea.pedido_id = pedidos.id')
|
||||||
|
->join('presupuestos', 'presupuestos.id = pedidos_linea.presupuesto_id')
|
||||||
|
->groupBy('presupuestos.cliente_id')->get()->getResultObject();
|
||||||
|
if(count($data) > 0){
|
||||||
|
$result['total_impresion'] = round(floatval($data[0]->total), 2);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
$error = true;
|
||||||
|
}
|
||||||
|
$result['total'] = $result['total_impresion'] + $result['total_maquetacion'];
|
||||||
|
return $this->respond(['status' => $error?'error':'success', 'totales' => $result]);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public function obtenerPedidosForFacturas(){
|
public function obtenerPedidosForFacturas(){
|
||||||
if ($this->request->isAJAX()) {
|
if ($this->request->isAJAX()) {
|
||||||
|
|||||||
@ -2,17 +2,17 @@
|
|||||||
<div class="col-2">
|
<div class="col-2">
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="acumuladoFacturacion"><?= lang('Pedidos.pedidosImpresion') ?></label>
|
<label for="pedidosImpresion"><?= lang('Pedidos.pedidosImpresion') ?></label>
|
||||||
<input readonly type="text" class="form-control autonumeric-currency-totales" id="pedidosImpresion"
|
<input readonly type="text" class="form-control autonumeric-currency-totales" id="pedidosImpresion"
|
||||||
name="pedidos_impresion">
|
name="pedidos_impresion">
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="totalPendientePago"><?= lang('Pedidos.pedidosMaquetacion') ?></label>
|
<label for="pedidosMaquetacion"><?= lang('Pedidos.pedidosMaquetacion') ?></label>
|
||||||
<input readonly type="text" class="form-control autonumeric-currency-totales" id="pedidosMaquetacion"
|
<input readonly type="text" class="form-control autonumeric-currency-totales" id="pedidosMaquetacion"
|
||||||
name="pedidos_maquetacion">
|
name="pedidos_maquetacion">
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="totalPendientePago" class="fw-bold"><?= lang('Pedidos.pedidosTotal') ?></label>
|
<label for="totalPedidos" class="fw-bold"><?= lang('Pedidos.pedidosTotal') ?></label>
|
||||||
<input readonly type="text" class="form-control fw-bold autonumeric-currency-totales" id="totalPedidos"
|
<input readonly type="text" class="form-control fw-bold autonumeric-currency-totales" id="totalPedidos"
|
||||||
name="total_pedidos">
|
name="total_pedidos">
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -67,91 +67,100 @@ class ClientePedidos {
|
|||||||
],
|
],
|
||||||
columns: datatableColumns,
|
columns: datatableColumns,
|
||||||
});
|
});
|
||||||
}
|
|
||||||
/*
|
|
||||||
$(document).on("keyup", ".factura-filter", (event) => {
|
|
||||||
//console.log(this.datatablePlanningRot.column($(event.currentTarget).attr("name")))
|
|
||||||
let columnName = $(event.currentTarget).attr("name");
|
|
||||||
let columnIndex = $('#tableOfFacturasCliente').DataTable().columns().eq(0).filter(function (index) {
|
|
||||||
return $('#tableOfFacturasCliente').DataTable().column(index).dataSrc() === columnName;
|
|
||||||
})[0];
|
|
||||||
$('#tableOfFacturasCliente').DataTable().column(columnIndex).search($(event.currentTarget).val()).draw()
|
|
||||||
})
|
|
||||||
|
|
||||||
$(document).on("change", ".factura-filter-select", (event) => {
|
new Ajax('/pedidos/getSumCliente/' + this.clienteId,
|
||||||
let columnName = $(event.currentTarget).attr("name");
|
{},
|
||||||
let columnIndex = $('#tableOfFacturasCliente').DataTable().columns().eq(0).filter(function (index) {
|
|
||||||
return $('#tableOfFacturasCliente').DataTable().column(index).dataSrc() === columnName;
|
|
||||||
})[0];
|
|
||||||
$('#tableOfFacturasCliente').DataTable().column(columnIndex).search($(event.currentTarget).val()).draw();
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
this.bsRangePickerRange.daterangepicker({
|
|
||||||
ranges: {
|
|
||||||
[window.language.datePicker.hoy]: [moment(), moment()],
|
|
||||||
[window.language.datePicker.ayer]: [moment().subtract(1, 'days'), moment().subtract(1, 'days')],
|
|
||||||
[window.language.datePicker.ultimos7]: [moment().subtract(6, 'days'), moment()],
|
|
||||||
[window.language.datePicker.ultimos30]: [moment().subtract(29, 'days'), moment()],
|
|
||||||
[window.language.datePicker.esteMes]: [moment().startOf('month'), moment().endOf('month')],
|
|
||||||
[window.language.datePicker.ultimoMes]: [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')]
|
|
||||||
},
|
|
||||||
opens: 'right',
|
|
||||||
language: window.language.datePickerLocale,
|
|
||||||
"locale": {
|
|
||||||
"customRangeLabel": window.language.datePicker.rangoPersonalizado,
|
|
||||||
"format": "YYYY-MM-DD",
|
|
||||||
"separator": " ",
|
|
||||||
"applyLabel": window.language.datePicker.aplicar,
|
|
||||||
"cancelLabel": window.language.datePicker.limpiar,
|
|
||||||
|
|
||||||
},
|
|
||||||
"alwaysShowCalendars": true,
|
|
||||||
autoUpdateInput: false,
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
this.bsRangePickerRange.on('apply.daterangepicker', function(ev, picker) {
|
|
||||||
|
|
||||||
$(this).val(picker.startDate.format('DD/MM/YYYY') + ' ' + picker.endDate.format('DD/MM/YYYY'));
|
|
||||||
let table = $('#tableOfFacturasCliente').DataTable();
|
|
||||||
table.column(2).draw();
|
|
||||||
});
|
|
||||||
|
|
||||||
this.bsRangePickerRange.on('cancel.daterangepicker', function(ev, picker) {
|
|
||||||
$(this).val('');
|
|
||||||
$('#tableOfFacturasCliente').DataTable().column(2).search('').draw();
|
|
||||||
});
|
|
||||||
|
|
||||||
new Ajax('/facturas/getdatoscliente/'+ this.clienteId,
|
|
||||||
{},
|
|
||||||
{},
|
{},
|
||||||
function (response) {
|
function (response) {
|
||||||
AutoNumeric.getAutoNumericElement('#acumuladoFacturacion').set(response.total_facturacion);
|
if (response.status == 'success') {
|
||||||
AutoNumeric.getAutoNumericElement('#totalPendientePago').set(response.total_pendiente);
|
AutoNumeric.getAutoNumericElement('#pedidosImpresion').set(response.totales['total_impresion']);
|
||||||
|
AutoNumeric.getAutoNumericElement('#pedidosMaquetacion').set(response.totales['total_maquetacion']);
|
||||||
|
AutoNumeric.getAutoNumericElement('#totalPedidos').set(response.totales['total']);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
console.log("Error data:", response);
|
||||||
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
function (error) {
|
function (error) {
|
||||||
console.log("Error data:", error);
|
console.log("Error data:", error);
|
||||||
}).get();
|
}).get();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
getDate() {
|
$(document).on("keyup", ".factura-filter", (event) => {
|
||||||
|
//console.log(this.datatablePlanningRot.column($(event.currentTarget).attr("name")))
|
||||||
let picker = this.bsRangePickerRange.data('daterangepicker');
|
let columnName = $(event.currentTarget).attr("name");
|
||||||
|
let columnIndex = $('#tableOfFacturasCliente').DataTable().columns().eq(0).filter(function (index) {
|
||||||
if (!picker || !picker.startDate || !picker.endDate || $('#fechaFactura').val() == '') {
|
return $('#tableOfFacturasCliente').DataTable().column(index).dataSrc() === columnName;
|
||||||
return '';
|
})[0];
|
||||||
}
|
$('#tableOfFacturasCliente').DataTable().column(columnIndex).search($(event.currentTarget).val()).draw()
|
||||||
|
})
|
||||||
let startDate = picker.startDate.format('YYYY-MM-DD');
|
|
||||||
let endDate = picker.endDate.format('YYYY-MM-DD');
|
|
||||||
|
|
||||||
return startDate + "|" + endDate;
|
|
||||||
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
$(document).on("change", ".factura-filter-select", (event) => {
|
||||||
|
let columnName = $(event.currentTarget).attr("name");
|
||||||
|
let columnIndex = $('#tableOfFacturasCliente').DataTable().columns().eq(0).filter(function (index) {
|
||||||
|
return $('#tableOfFacturasCliente').DataTable().column(index).dataSrc() === columnName;
|
||||||
|
})[0];
|
||||||
|
$('#tableOfFacturasCliente').DataTable().column(columnIndex).search($(event.currentTarget).val()).draw();
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
this.bsRangePickerRange.daterangepicker({
|
||||||
|
ranges: {
|
||||||
|
[window.language.datePicker.hoy]: [moment(), moment()],
|
||||||
|
[window.language.datePicker.ayer]: [moment().subtract(1, 'days'), moment().subtract(1, 'days')],
|
||||||
|
[window.language.datePicker.ultimos7]: [moment().subtract(6, 'days'), moment()],
|
||||||
|
[window.language.datePicker.ultimos30]: [moment().subtract(29, 'days'), moment()],
|
||||||
|
[window.language.datePicker.esteMes]: [moment().startOf('month'), moment().endOf('month')],
|
||||||
|
[window.language.datePicker.ultimoMes]: [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')]
|
||||||
|
},
|
||||||
|
opens: 'right',
|
||||||
|
language: window.language.datePickerLocale,
|
||||||
|
"locale": {
|
||||||
|
"customRangeLabel": window.language.datePicker.rangoPersonalizado,
|
||||||
|
"format": "YYYY-MM-DD",
|
||||||
|
"separator": " ",
|
||||||
|
"applyLabel": window.language.datePicker.aplicar,
|
||||||
|
"cancelLabel": window.language.datePicker.limpiar,
|
||||||
|
|
||||||
|
},
|
||||||
|
"alwaysShowCalendars": true,
|
||||||
|
autoUpdateInput: false,
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
this.bsRangePickerRange.on('apply.daterangepicker', function(ev, picker) {
|
||||||
|
|
||||||
|
$(this).val(picker.startDate.format('DD/MM/YYYY') + ' ' + picker.endDate.format('DD/MM/YYYY'));
|
||||||
|
let table = $('#tableOfFacturasCliente').DataTable();
|
||||||
|
table.column(2).draw();
|
||||||
|
});
|
||||||
|
|
||||||
|
this.bsRangePickerRange.on('cancel.daterangepicker', function(ev, picker) {
|
||||||
|
$(this).val('');
|
||||||
|
$('#tableOfFacturasCliente').DataTable().column(2).search('').draw();
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
getDate() {
|
||||||
|
|
||||||
|
let picker = this.bsRangePickerRange.data('daterangepicker');
|
||||||
|
|
||||||
|
if (!picker || !picker.startDate || !picker.endDate || $('#fechaFactura').val() == '') {
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
|
||||||
|
let startDate = picker.startDate.format('YYYY-MM-DD');
|
||||||
|
let endDate = picker.endDate.format('YYYY-MM-DD');
|
||||||
|
|
||||||
|
return startDate + "|" + endDate;
|
||||||
|
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user