mirror of
https://git.imnavajas.es/jjimenez/safekat.git
synced 2025-07-25 22:52:08 +00:00
trabajando en el formulario envio de ferros
This commit is contained in:
@ -806,6 +806,7 @@ $routes->group('logistica', ['namespace' => 'App\Controllers\Logistica'], functi
|
||||
$routes->get('print/label/test', 'LogisticaController::print_test_label');
|
||||
$routes->get('panel', 'LogisticaController::panel', ['as' => 'LogisticaPanel']);
|
||||
$routes->get('envios', 'LogisticaController::gestionEnvios', ['as' => 'gestionEnvios']);
|
||||
$routes->get('enviosFerros', 'LogisticaController::gestionEnviosFerros', ['as' => 'gestionEnviosFerros']);
|
||||
$routes->get('datatableEnvios', 'LogisticaController::datatable_envios');
|
||||
$routes->get('datatableLineasEnvios/(:num)', 'LogisticaController::datatable_enviosEdit/$1');
|
||||
$routes->get('envio/(:num)', 'LogisticaController::editEnvio/$1');
|
||||
|
||||
@ -62,6 +62,22 @@ class LogisticaController extends BaseController
|
||||
'currentModule' => static::$controllerSlug,
|
||||
'boxTitle' => lang('Logistica.gestionEnvios'),
|
||||
'usingServerSideDataTable' => true,
|
||||
'tipo_envio' => 'estandar',
|
||||
];
|
||||
|
||||
$viewData = array_merge($this->viewData, $viewData); // merge any possible values from the parent controller class
|
||||
|
||||
return view(static::$viewPath . 'viewLogisticaSelectEnvios', $viewData);
|
||||
}
|
||||
|
||||
|
||||
public function gestionEnviosFerros()
|
||||
{
|
||||
$viewData = [
|
||||
'currentModule' => static::$controllerSlug,
|
||||
'boxTitle' => lang('Logistica.envioFerros'),
|
||||
'usingServerSideDataTable' => true,
|
||||
'tipo_envio' => 'ferro_prototipo',
|
||||
];
|
||||
|
||||
$viewData = array_merge($this->viewData, $viewData); // merge any possible values from the parent controller class
|
||||
@ -233,9 +249,10 @@ class LogisticaController extends BaseController
|
||||
{
|
||||
|
||||
$otsFilter = $this->request->getGetPost('otsFilter');
|
||||
$tipo_envio = $this->request->getGetPost('tipo_envio') ?? 'estandar';
|
||||
|
||||
$model = model('App\Models\Logistica\EnvioModel');
|
||||
$q = $model->getDatatableQuery();
|
||||
$q = $model->getDatatableQuery($tipo_envio);
|
||||
|
||||
if (!empty($otsFilter)) {
|
||||
$q->groupStart();
|
||||
|
||||
@ -54,6 +54,7 @@ class Presupuestodirecciones extends \App\Controllers\BaseResourceController
|
||||
$proveedor = $reqData['proveedor'] ?? "";
|
||||
$proveedor_id = $reqData['proveedor_id'] ?? "";
|
||||
$entregaPieCalle = $reqData['entregaPieCalle'] ?? 0;
|
||||
$is_ferro_prototipo = $reqData['is_ferro_prototipo'] ?? 0;
|
||||
|
||||
$data = [
|
||||
"presupuesto_id" => $presupuesto_id,
|
||||
@ -73,6 +74,7 @@ class Presupuestodirecciones extends \App\Controllers\BaseResourceController
|
||||
"proveedor" => $proveedor,
|
||||
"proveedor_id" => $proveedor_id,
|
||||
"entregaPieCalle" => $entregaPieCalle,
|
||||
"is_ferro_prototipo" => $is_ferro_prototipo
|
||||
];
|
||||
$response = $this->model->insert($data);
|
||||
|
||||
|
||||
@ -7,30 +7,24 @@ use CodeIgniter\Database\Migration;
|
||||
use CodeIgniter\Database\RawSql;
|
||||
use CodeIgniter\I18n\Time;
|
||||
|
||||
class AddClickColumnOrdenTrabajoTarea extends Migration
|
||||
class AddFerroProtoPresupuestoDirecciones extends Migration
|
||||
{
|
||||
|
||||
protected array $COLUMNS = [
|
||||
"click_init" => [
|
||||
"type" => "INT",
|
||||
"is_ferro_prototipo" => [
|
||||
"type" => "TINYINT",
|
||||
"unsigned" => true,
|
||||
"default" => 0,
|
||||
"comment" => "Click iniciales de una tarea de impresion"
|
||||
],
|
||||
"click_end" => [
|
||||
"type" => "INT",
|
||||
"unsigned" => true,
|
||||
"default" => 0,
|
||||
"comment" => "Click finales de una tarea de impresion"
|
||||
"comment" => "Indica si es una direccion para el prototipo o ferro",
|
||||
],
|
||||
];
|
||||
public function up()
|
||||
{
|
||||
$this->forge->addColumn('orden_trabajo_tareas', $this->COLUMNS);
|
||||
$this->forge->addColumn('presupuesto_direcciones', $this->COLUMNS);
|
||||
}
|
||||
|
||||
public function down()
|
||||
{
|
||||
$this->forge->dropColumn('orden_trabajo_tareas', array_keys($this->COLUMNS));
|
||||
$this->forge->dropColumn('presupuesto_direcciones', array_keys($this->COLUMNS));
|
||||
}
|
||||
}
|
||||
|
||||
@ -31,5 +31,6 @@ class EnvioEntity extends Entity
|
||||
'created_at' => 'datetime',
|
||||
'updated_at' => 'datetime',
|
||||
'cajas' => 'int',
|
||||
'tipo_envio' => 'string',
|
||||
];
|
||||
}
|
||||
|
||||
@ -25,6 +25,7 @@ class PresupuestoDireccionesEntity extends \CodeIgniter\Entity\Entity
|
||||
"proveedor_id" => null,
|
||||
"margen" => null,
|
||||
"entregaPieCalle" => null,
|
||||
"is_ferro_prototipo" => null,
|
||||
];
|
||||
protected $casts = [
|
||||
"presupuesto_id" => "int",
|
||||
@ -38,6 +39,7 @@ class PresupuestoDireccionesEntity extends \CodeIgniter\Entity\Entity
|
||||
"margen" => "float",
|
||||
"proveedor_id" => "int",
|
||||
"entregaPieCalle" => "int",
|
||||
"is_ferro_prototipo" => "int",
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
@ -32,13 +32,14 @@ class EnvioModel extends Model
|
||||
'created_at',
|
||||
'updated_at',
|
||||
'cajas',
|
||||
'tipo_envio',
|
||||
];
|
||||
|
||||
protected $useTimestamps = true;
|
||||
protected $createdField = 'created_at';
|
||||
protected $updatedField = 'updated_at';
|
||||
|
||||
public function getDatatableQuery(): BaseBuilder
|
||||
public function getDatatableQuery($tipo_envio = "estandar"): BaseBuilder
|
||||
{
|
||||
$builder = $this->db
|
||||
->table($this->table . " t1")
|
||||
@ -51,6 +52,24 @@ class EnvioModel extends Model
|
||||
$builder->join("lg_paises t3", "t3.id = t1.pais_id", "left");
|
||||
$builder->join("pedidos t4", "t4.id = t2.pedido_id", "left");
|
||||
$builder->join('ordenes_trabajo t5', 't5.pedido_id = t4.id');
|
||||
$builder->where("t1.tipo_envio", $tipo_envio);
|
||||
|
||||
$builder->groupBy("t1.id");
|
||||
return $builder;
|
||||
}
|
||||
|
||||
public function getDatatableQueryFerroPrototipo(): BaseBuilder
|
||||
{
|
||||
$builder = $this->db
|
||||
->table($this->table . " t1")
|
||||
->select(
|
||||
"t1.id, GROUP_CONCAT(DISTINCT t5.id) AS ots,
|
||||
t1.att, t1.direccion, t1.ciudad, t3.nombre as pais, t1.cp, t1.email, t1.telefono, t1.finalizado"
|
||||
);
|
||||
$builder->join("lg_paises t3", "t3.id = t1.pais_id", "left");
|
||||
$builder->join("pedidos t4", "t4.id = t2.pedido_id", "left");
|
||||
$builder->join('ordenes_trabajo t5', 't5.pedido_id = t4.id');
|
||||
$builder->whereIn("t1.tipo_envio", ["estandar"]);
|
||||
|
||||
$builder->groupBy("t1.id");
|
||||
return $builder;
|
||||
|
||||
@ -45,6 +45,7 @@ class PresupuestoDireccionesModel extends \App\Models\BaseModel
|
||||
"proveedor_id",
|
||||
"proveedor",
|
||||
"entregaPieCalle",
|
||||
"is_ferro_prototipo"
|
||||
];
|
||||
|
||||
protected $returnType = "App\Entities\Presupuestos\PresupuestoDireccionesEntity";
|
||||
@ -69,7 +70,8 @@ class PresupuestoDireccionesModel extends \App\Models\BaseModel
|
||||
t1.email AS email, t1.direccion AS direccion, t1.pais_id AS pais_id, t2.nombre AS pais,
|
||||
t1.municipio AS municipio, t1.provincia AS provincia, t1.cp AS cp, t1.telefono AS telefono,
|
||||
t1.peso AS peso, t1.cantidad AS cantidad, t1.precio AS precio, t1.margen AS margen,
|
||||
t1.proveedor_id AS proveedor_id, t1.proveedor AS proveedor, t1.entregaPieCalle AS entregaPieCalle"
|
||||
t1.proveedor_id AS proveedor_id, t1.proveedor AS proveedor, t1.entregaPieCalle AS entregaPieCalle,
|
||||
t1.is_ferro_prototipo AS is_ferro_prototipo"
|
||||
);
|
||||
|
||||
$builder->where('t1.presupuesto_id', $presupuesto_id);
|
||||
|
||||
@ -126,7 +126,8 @@ class LogisticaService
|
||||
->join('presupuestos pr', 'pr.id=presupuesto_direcciones.presupuesto_id')
|
||||
->join('pedidos_linea pl', 'pl.presupuesto_id = pr.id')
|
||||
->join('pedidos p', 'pl.pedido_id=p.id')
|
||||
->where('p.id', $pedido_id);
|
||||
->where('p.id', $pedido_id)
|
||||
->where("presupuesto_direcciones.is_ferro_prototipo", 0);
|
||||
if ($searchVal != "") {
|
||||
$dirs = $dirs->groupStart()
|
||||
->Like("id", $searchVal)
|
||||
@ -196,6 +197,7 @@ class LogisticaService
|
||||
->join('pedidos p', 'p.id = pl.pedido_id')
|
||||
->join('presupuestos pr', 'pr.id = pl.presupuesto_id')
|
||||
->join('presupuesto_direcciones pd', 'pd.presupuesto_id = pr.id')
|
||||
->where('pd.is_ferro_prototipo', 0)
|
||||
->where('p.id', $pedido_id)
|
||||
->whereIn('p.estado', ['finalizado', 'produccion'])
|
||||
->where("TRIM(LOWER(pd.direccion)) = '$direccionNormalizada'", null, false)
|
||||
@ -276,6 +278,7 @@ class LogisticaService
|
||||
->join('pedidos', 'pedidos.id = pedidos_linea.pedido_id')
|
||||
->join('presupuestos', 'pedidos_linea.presupuesto_id = presupuestos.id')
|
||||
->where('pedidos.id', $pedido_id)
|
||||
->where('presupuesto_direcciones.is_ferro_prototipo', 0)
|
||||
->like('presupuesto_direcciones.direccion', $direccion)
|
||||
->groupBy('presupuesto_direcciones.id')
|
||||
->first();
|
||||
|
||||
@ -18,7 +18,6 @@
|
||||
<?= view("themes/_commonPartialsBs/_alertBoxes") ?>
|
||||
|
||||
<input type="hidden" id="id" name="id" value="<?= $envioEntity->id ?>">
|
||||
<input type="hidden" id="nextCaja" name="next_caja" value="<?= $envioEntity->nextCaja ?>">
|
||||
|
||||
<div class="accordion accordion-bordered">
|
||||
<div class="card accordion-item active mb-5">
|
||||
|
||||
@ -1,97 +0,0 @@
|
||||
<?= $this->include("themes/_commonPartialsBs/sweetalert") ?>
|
||||
<?= $this->include('themes/_commonPartialsBs/datatables') ?>
|
||||
<?= $this->extend('themes/vuexy/main/defaultlayout') ?>
|
||||
|
||||
<?= $this->section('content'); ?>
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h4><?= $boxTitle ?></h4>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
|
||||
<?= view("themes/_commonPartialsBs/_alertBoxes") ?>
|
||||
|
||||
<div class="card accordion-item active mb-5">
|
||||
<h4 class="accordion-header px-4 py-3">
|
||||
<?= lang("Logistica.nuevoEnvio") ?>
|
||||
</h4>
|
||||
|
||||
<div id="accordionNuevoEnvioTip" class="accordion-collapse collapse show">
|
||||
<div class="accordion-body px-4 py-3">
|
||||
|
||||
<div class="row">
|
||||
|
||||
<div class="mb-1 col-sm-4">
|
||||
<label for="buscadorPedidos" class="form-label">
|
||||
<?= lang("Logistica.buscadorPedidosTitle") ?>
|
||||
</label>
|
||||
<input id="buscadorPedidos" name="buscador_pedidos" tabindex="1" maxlength="50"
|
||||
class="form-control" value="">
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="card accordion-item active">
|
||||
<h4 class="accordion-header px-4 py-3">
|
||||
<?= lang("Logistica.listadoEnvios") ?>
|
||||
</h4>
|
||||
|
||||
<div id="accordionListadoEnviosTip" class="accordion-collapse collapse show">
|
||||
<div class="accordion-body px-4 py-3">
|
||||
|
||||
<div class="row">
|
||||
<table id="tableOfEnvios" class="table table-striped table-hover w-100">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><?= lang('Logistica.idEnvio') ?? 'ID Envío' ?></th>
|
||||
<th><?= lang('Logistica.numeroOts') ?? 'Nº OTs' ?></th>
|
||||
<th><?= lang('Logistica.numeroLineas') ?? 'Nº Líneas' ?></th>
|
||||
<th><?= lang('Logistica.att') ?? 'Att' ?></th>
|
||||
<th><?= lang('Logistica.direccion') ?? 'Dirección' ?></th>
|
||||
<th><?= lang('Logistica.ciudad') ?? 'Ciudad' ?></th>
|
||||
<th><?= lang('Logistica.pais') ?? 'País' ?></th>
|
||||
<th><?= lang('Logistica.cp') ?? 'CP' ?></th>
|
||||
<th><?= lang('Logistica.email') ?? 'Email' ?></th>
|
||||
<th><?= lang('Logistica.telefono') ?? 'Teléfono' ?></th>
|
||||
<th><?= lang('Logistica.finalizado') ?? 'Finalizado' ?></th>
|
||||
<th><?= lang('Logistica.acciones') ?? 'Acciones' ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mt-3">
|
||||
<button type="button" class="btn btn-secondary" id="btnImprimirEtiquetas"
|
||||
onclick="window.location.href='<?= route_to('LogisticaPanel') ?>'">
|
||||
<?= lang('Logistica.backToPanel') ?>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?= $this->endSection() ?>
|
||||
|
||||
|
||||
<?= $this->section('css') ?>
|
||||
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/libs/sweetalert2/sweetalert2.css') ?>" />
|
||||
<?= $this->endSection() ?>
|
||||
|
||||
<?= $this->section('additionalExternalJs') ?>
|
||||
<script src="<?= site_url('themes/vuexy/vendor/libs/sweetalert2/sweetalert2.js') ?>"></script>
|
||||
<script type="module" src="<?= site_url("assets/js/safekat/pages/logistica/envio.js") ?>"></script>
|
||||
<?= $this->endSection() ?>
|
||||
@ -12,6 +12,8 @@
|
||||
</div>
|
||||
<div class="card-body">
|
||||
|
||||
<input type="hidden" id="tipo_envio" value="<?= $tipo_envio ?>" />
|
||||
|
||||
<?= view("themes/_commonPartialsBs/_alertBoxes") ?>
|
||||
|
||||
<div class="card accordion-item active mb-5">
|
||||
|
||||
@ -17,7 +17,7 @@
|
||||
<img src="<?= site_url("assets/img/logistica/envios.jpg") ?>" alt="Envíos">
|
||||
<div><span><?= lang("Logistica.gestionEnvios"); ?></span></div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<div class="item" onclick="location.href='<?= route_to('gestionEnviosFerros') ?>'">
|
||||
<img src="<?= site_url("assets/img/logistica/envios_ferros.png") ?>" alt="Envío de Ferros/Prototipos">
|
||||
<div><span><?= lang("Logistica.envioFerros"); ?></span></div>
|
||||
</div>
|
||||
|
||||
@ -39,6 +39,7 @@
|
||||
<th class="lp-header"><?= lang('PresupuestosDirecciones.costePrecio') ?></th>
|
||||
<th class="lp-header"><?= lang('Tarifaacabado.margen') ?></th>
|
||||
<th class="lp-header">Pallets?</th>
|
||||
<th class="lp-header">Ferro o Prototipo?</th>
|
||||
<th style="min-width:120px !important;" class="lp-header"><?= lang('Basic.global.Action') ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
@ -60,6 +61,7 @@
|
||||
<button id="insertar_direccion" type="button" class="btn btn-secondary waves-effect waves-light float-start"><?= lang("Presupuestos.insertar")?></button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div> <!-- //.accordion-body -->
|
||||
</div> <!-- //.accordion-collapse -->
|
||||
</div> <!-- //.accordion-item -->
|
||||
|
||||
@ -8,6 +8,15 @@
|
||||
<div class="modal-body">
|
||||
|
||||
<div id='error-tarifa'></div>
|
||||
|
||||
<div class="mb-3" id="direccionFerroProto">
|
||||
<label for="dirFerroProto" class="form-label">
|
||||
Dirección Ferro o Prototipo
|
||||
</label>
|
||||
<input type="checkbox" id="dirFerroProto" class="form-check-input">
|
||||
|
||||
</div><!--//.mb-3 -->
|
||||
|
||||
<div class="mb-3">
|
||||
<label for="add_clientedAdd" class="form-label">
|
||||
<?= lang('PresupuestosDirecciones.clientedAdd') ?>*
|
||||
|
||||
@ -66,6 +66,7 @@ $(() => {
|
||||
"url": "/logistica/datatableEnvios",
|
||||
"data": function (d) {
|
||||
d.otsFilter = otsFilter;
|
||||
d.tipo_envio = $('#tipo_envio').val();
|
||||
}
|
||||
},
|
||||
"columns": [
|
||||
|
||||
@ -235,9 +235,35 @@ class DatosLibro {
|
||||
|
||||
if (this.ferro.prop('checked')) {
|
||||
$(document).trigger('add-servicio-lineas', 'ferro');
|
||||
$(document).trigger('update-presupuesto', {
|
||||
update_lineas: false,
|
||||
update_servicios: false,
|
||||
update_envios: true,
|
||||
update_resumen: false,
|
||||
update_tiradas_alternativas: false
|
||||
});
|
||||
}
|
||||
else {
|
||||
$(document).trigger('remove-servicio-lineas', 'ferro');
|
||||
if(!this.prototipo.prop('checked')){
|
||||
const table = $('#tableOfDireccionesEnvio').DataTable();
|
||||
const rows = table.rows().data();
|
||||
for (let i = 0; i < rows.length; i++) {
|
||||
const rowData = rows[i];
|
||||
if (rowData.is_ferro_prototipo == 1) {
|
||||
table.rows(i).remove();
|
||||
table.draw();
|
||||
break;
|
||||
}
|
||||
}
|
||||
$(document).trigger('update-presupuesto', {
|
||||
update_lineas: false,
|
||||
update_servicios: false,
|
||||
update_envios: true,
|
||||
update_resumen: true,
|
||||
update_tiradas_alternativas: true
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -261,9 +287,35 @@ class DatosLibro {
|
||||
|
||||
if (this.prototipo.prop('checked')) {
|
||||
$(document).trigger('add-servicio-lineas', 'prototipo');
|
||||
$(document).trigger('update-presupuesto', {
|
||||
update_lineas: false,
|
||||
update_servicios: false,
|
||||
update_envios: true,
|
||||
update_resumen: false,
|
||||
update_tiradas_alternativas: false
|
||||
});
|
||||
}
|
||||
else {
|
||||
$(document).trigger('remove-servicio-lineas', 'prototipo');
|
||||
if(!this.ferro.prop('checked')){
|
||||
const table = $('#tableOfDireccionesEnvio').DataTable();
|
||||
const rows = table.rows().data();
|
||||
for (let i = 0; i < rows.length; i++) {
|
||||
const rowData = rows[i];
|
||||
if (rowData.is_ferro_prototipo == 1) {
|
||||
table.rows(i).remove();
|
||||
table.draw();
|
||||
break;
|
||||
}
|
||||
}
|
||||
$(document).trigger('update-presupuesto', {
|
||||
update_lineas: false,
|
||||
update_servicios: false,
|
||||
update_envios: true,
|
||||
update_resumen: true,
|
||||
update_tiradas_alternativas: true
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -71,6 +71,7 @@ class Envios {
|
||||
},
|
||||
{ 'data': 'margen', render: function (data, type, row) { return Math.round(data) } },
|
||||
{ 'data': 'entregaPieCalle' },
|
||||
{ 'data': 'is_ferro_prototipo' },
|
||||
{
|
||||
data: function (row, type, set, meta) {
|
||||
return `
|
||||
@ -87,7 +88,7 @@ class Envios {
|
||||
orderable: false,
|
||||
searchable: false,
|
||||
// all columns
|
||||
targets: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
|
||||
targets: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],
|
||||
//targets: [$('#tableOfDireccionesEnvio').find("tr:first th").length - 1]
|
||||
},
|
||||
],
|
||||
@ -97,7 +98,7 @@ class Envios {
|
||||
|
||||
drawCallback: function (settings) {
|
||||
|
||||
const boolCols = [15];
|
||||
const boolCols = [15, 16];
|
||||
for (let coln of boolCols) {
|
||||
self.table.column(coln, { page: 'current' }).nodes().each(function (cell, i) {
|
||||
cell.innerHTML = cell.innerHTML == '1' ? '<i class="ti ti-check"></i>' : '';
|
||||
@ -164,6 +165,19 @@ class Envios {
|
||||
$('#add_telefono').val(data.telefono)
|
||||
$('#add_cantidad').val(data.cantidad)
|
||||
$('#add_entregaPieCalle').prop('checked', data.entregaPieCalle == 1 ? true : false)
|
||||
$('#dirFerroProto').prop('checked', data.is_ferro_prototipo == 1 ? true : false)
|
||||
|
||||
if (data.is_ferro_prototipo == 1) {
|
||||
$('#add_cantidad').val(1);
|
||||
$('#add_cantidad').attr('disabled', true);
|
||||
$('#dirFerroProto').prop('disabled', true);
|
||||
$('#direccionFerroProto').removeClass('d-none');
|
||||
}
|
||||
else {
|
||||
$('#add_cantidad').attr('disabled', false);
|
||||
$('#dirFerroProto').prop('disabled', false);
|
||||
$('#direccionFerroProto').addClass('d-none');
|
||||
}
|
||||
|
||||
self.direccionesClienteForm.setParams({ 'cliente_id': () => $("#clienteId").select2('data')[0].id });
|
||||
self.direccionesClienteForm.init();
|
||||
@ -220,6 +234,7 @@ class Envios {
|
||||
let newAddDialog = $("#addressForm");
|
||||
this.direccionesClienteForm.setParams({ 'cliente_id': () => $("#clienteId").select2('data')[0].id });
|
||||
this.direccionesClienteForm.init();
|
||||
|
||||
let maximaCantidad = parseInt($('#tirada').val());
|
||||
$("#add_cantidad").attr("max", maximaCantidad);;
|
||||
$("#add_cantidad").val(maximaCantidad);
|
||||
@ -228,16 +243,39 @@ class Envios {
|
||||
})
|
||||
|
||||
let cantidad_total = 0;
|
||||
let hasFerroPrototipo = false;
|
||||
$('#tableOfDireccionesEnvio').DataTable().rows().every(function (rowIdx, tableLoop, rowLoop) {
|
||||
let data = this.data();
|
||||
cantidad_total += parseInt(data.cantidad);
|
||||
if (data.is_ferro_prototipo == 0)
|
||||
cantidad_total += parseInt(data.cantidad);
|
||||
else
|
||||
hasFerroPrototipo = true;
|
||||
});
|
||||
$('#add_cantidad').attr('max-value', parseInt($('#tirada').val()) - cantidad_total);
|
||||
$('#add_cantidad').val(parseInt($('#tirada').val()) - cantidad_total);
|
||||
const restante = parseInt($('#tirada').val()) - cantidad_total;
|
||||
$('#add_cantidad').attr('max-value', restante);
|
||||
$('#add_cantidad').val(restante > 0 ? restante : 0);
|
||||
|
||||
if (hasFerroPrototipo) {
|
||||
$('#dirFerroProto').prop('checked', false);
|
||||
$('#direccionFerroProto').addClass('d-none');
|
||||
$('#add_cantidad').attr('disabled', false);
|
||||
}
|
||||
else {
|
||||
if (restante == 0) {
|
||||
$('#direccionFerroProto').removeClass('d-none');
|
||||
$('#dirFerroProto').prop('checked', true);
|
||||
$('#dirFerroProto').prop('disabled', true);
|
||||
$('#add_cantidad').attr('disabled', true);
|
||||
$('#add_cantidad').val(1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
newAddDialog.modal('show');
|
||||
}
|
||||
|
||||
|
||||
|
||||
get_peso_libro() {
|
||||
|
||||
var peso_total_libro = 0.0
|
||||
@ -277,11 +315,12 @@ class Envios {
|
||||
margen: data.margen,
|
||||
proveedor: data.proveedor,
|
||||
proveedor_id: data.proveedor_id,
|
||||
entregaPieCalle: data.entregaPieCalle
|
||||
entregaPieCalle: data.entregaPieCalle,
|
||||
is_ferro_prototipo: data.is_ferro_prototipo,
|
||||
})
|
||||
});
|
||||
|
||||
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
@ -379,11 +418,14 @@ class Envios {
|
||||
'precio': datos_tarifa.precio.toFixed(2),
|
||||
'margen': datos_tarifa.margen,
|
||||
'entregaPieCalle': rowData.entregaPieCalle,
|
||||
'is_ferro_prototipo': rowData.is_ferro_prototipo,
|
||||
'actionBtns_direcciones': self.actionBtns_direcciones,
|
||||
})
|
||||
.draw();
|
||||
|
||||
|
||||
self.check_unidades_enviadas(null,null);
|
||||
|
||||
$(document).trigger('update-presupuesto', {
|
||||
update_lineas: false,
|
||||
update_servicios: false,
|
||||
@ -566,6 +608,7 @@ class Envios {
|
||||
'precio': tarifa_final.precio,
|
||||
'margen': tarifa_final.margen,
|
||||
'entregaPieCalle': $('#add_entregaPieCalle').is(":checked") ? 1 : 0,
|
||||
'is_ferro_prototipo': $('#dirFerroProto').is(":checked") ? 1 : 0,
|
||||
'actionBtns_direcciones': `
|
||||
<span class="edit-add"><a href="javascript:void(0);"><i class="ti ti-pencil ti-sm btn-edit-envio mx-2"></i></a></span>
|
||||
<a href="javascript:void(0);"><i class="ti ti-trash ti-sm tiradas-alternativas btn-delete-envio mx-2"></i></a>
|
||||
@ -673,8 +716,12 @@ class Envios {
|
||||
}
|
||||
|
||||
let cantidad_total = 0
|
||||
let hasFerroPrototipo = false
|
||||
this.table.rows().every(function (rowIdx, tableLoop, rowLoop) {
|
||||
cantidad_total += parseInt(this.data().cantidad)
|
||||
if (this.data().is_ferro_prototipo == 0)
|
||||
cantidad_total += parseInt(this.data().cantidad);
|
||||
else
|
||||
hasFerroPrototipo = true;
|
||||
});
|
||||
|
||||
const tirada = parseInt($('#tirada').val());
|
||||
@ -695,7 +742,11 @@ class Envios {
|
||||
this.insertarEnvio.removeClass('d-none');
|
||||
return false;
|
||||
}
|
||||
this.insertarEnvio.addClass('d-none');
|
||||
|
||||
if (($('#ferro').is(':checked') || $('#prototipo').is(':checked')) && !hasFerroPrototipo)
|
||||
this.insertarEnvio.removeClass('d-none');
|
||||
else
|
||||
this.insertarEnvio.addClass('d-none');
|
||||
$('#alert-envios').html(htmlString);
|
||||
return true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user