mirror of
https://git.imnavajas.es/jjimenez/safekat.git
synced 2025-07-25 22:52:08 +00:00
Merge branch 'main' into mod/direcciones_ferro_prototipo
This commit is contained in:
@ -344,6 +344,10 @@ class ImportadorCatalogo extends BaseResourceController
|
||||
]
|
||||
];
|
||||
|
||||
// Vincular el presupuesto con el catálogo
|
||||
model('\App\Models\Presupuestos\PresupuestoModel')
|
||||
->vincularCatalogo($response['data']['sk_id'], $libro->id);
|
||||
|
||||
|
||||
// Ajuste del precio a RAMA
|
||||
$respuesta_ajuste = PresupuestoService::ajustarPresupuesto(
|
||||
@ -362,7 +366,7 @@ class ImportadorCatalogo extends BaseResourceController
|
||||
|
||||
// confirmar y crear pedido y ot
|
||||
model('App\Models\Presupuestos\PresupuestoModel')->confirmarPresupuesto($response['data']['sk_id']);
|
||||
PresupuestoService::crearPedido($response['data']['sk_id'],isImported:true);
|
||||
PresupuestoService::crearPedido($response['data']['sk_id'], isImported: true);
|
||||
|
||||
return $this->respond($response);
|
||||
|
||||
@ -379,7 +383,7 @@ class ImportadorCatalogo extends BaseResourceController
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
private function calcularPrecioDesdeTarifa($isColor, $encuadernacionId, $ancho, $alto, $paginas, $tarifas)
|
||||
{
|
||||
// Solo aplicamos tarifa si la encuadernación es Rústica Fresada (id = 2)
|
||||
|
||||
@ -0,0 +1,43 @@
|
||||
<?php
|
||||
|
||||
namespace App\Database\Migrations;
|
||||
|
||||
use CodeIgniter\Database\Migration;
|
||||
|
||||
class AddCatalogoIdToPresupuestos extends Migration
|
||||
{
|
||||
public function up()
|
||||
{
|
||||
// Añadir columna
|
||||
$this->forge->addColumn('presupuestos', [
|
||||
'catalogo_id' => [
|
||||
'type' => 'INT',
|
||||
'constraint' => 10,
|
||||
'unsigned' => true,
|
||||
'null' => true,
|
||||
'after' => 'tipologia_id'
|
||||
],
|
||||
]);
|
||||
|
||||
// Agregar clave foránea
|
||||
$this->db->query('
|
||||
ALTER TABLE presupuestos
|
||||
ADD CONSTRAINT FK_presupuestos_catalogo_libros
|
||||
FOREIGN KEY (catalogo_id) REFERENCES catalogo_libros(id)
|
||||
ON DELETE SET NULL
|
||||
ON UPDATE CASCADE
|
||||
');
|
||||
}
|
||||
|
||||
public function down()
|
||||
{
|
||||
// Eliminar la clave foránea primero
|
||||
$this->db->query('
|
||||
ALTER TABLE presupuestos
|
||||
DROP FOREIGN KEY FK_presupuestos_catalogo_libros
|
||||
');
|
||||
|
||||
// Eliminar columna
|
||||
$this->forge->dropColumn('presupuestos', 'catalogo_id');
|
||||
}
|
||||
}
|
||||
@ -27,6 +27,7 @@ class PresupuestoEntity extends \CodeIgniter\Entity\Entity
|
||||
"user_update_id" => null,
|
||||
"tipo_impresion_id" => null,
|
||||
"tipologia_id" => null,
|
||||
"catalogo_id" => null,
|
||||
"pais_id" => 1,
|
||||
"estado_id" => 1,
|
||||
"inc_rei" => null,
|
||||
@ -129,6 +130,7 @@ class PresupuestoEntity extends \CodeIgniter\Entity\Entity
|
||||
"user_update_id" => "?int",
|
||||
"tipo_impresion_id" => "?int",
|
||||
"tipologia_id" => "?int",
|
||||
"catalogo_id" => "?int",
|
||||
"pais_id" => "int",
|
||||
"estado_id" => "int",
|
||||
"retractilado" => "boolean",
|
||||
|
||||
@ -47,6 +47,7 @@ class PresupuestoModel extends \App\Models\BaseModel
|
||||
"user_update_id",
|
||||
"tipo_impresion_id",
|
||||
"tipologia_id",
|
||||
"catalogo_id",
|
||||
"pais_id",
|
||||
"estado_id",
|
||||
"inc_rei",
|
||||
@ -468,13 +469,13 @@ class PresupuestoModel extends \App\Models\BaseModel
|
||||
|
||||
'comparador_json_data' => $this->generateJson($data),
|
||||
|
||||
'faja_color' => is_array($data['faja']) && count($data['faja'])>0 ? 1 : 0,
|
||||
'faja_color' => is_array($data['faja']) && count($data['faja']) > 0 ? 1 : 0,
|
||||
'solapas_ancho_faja_color' => is_array($data['faja']) && $data['faja'] !== [] ? $data['faja']['solapas'] : 60,
|
||||
'alto_faja_color' => is_array($data['faja']) && $data['faja'] !== [] ? $data['faja']['alto'] : 50,
|
||||
'alto_faja_color' => is_array($data['faja']) && $data['faja'] !== [] ? $data['faja']['alto'] : 50,
|
||||
|
||||
'acabado_cubierta_id' => $data['cubierta']['acabado'],
|
||||
'acabado_sobrecubierta_id' => !$data['sobrecubierta'] ? 0 : $data['sobrecubierta']['acabado'],
|
||||
'acabado_faja_id' => is_array($data['faja']) && $data['faja'] !== [] ? $data['faja']['acabado'] : 0,
|
||||
'acabado_faja_id' => is_array($data['faja']) && $data['faja'] !== [] ? $data['faja']['acabado'] : 0,
|
||||
|
||||
'comp_tipo_impresion' => $data['isHq'] ? ($data['isColor'] ? 'colorhq' : 'negrohq') : ($data['isColor'] ? 'color' : 'negro'),
|
||||
|
||||
@ -499,29 +500,38 @@ class PresupuestoModel extends \App\Models\BaseModel
|
||||
'total_margenes' => round($totalMargenes, 2),
|
||||
|
||||
'total_antes_descuento' => round(
|
||||
$totalCostes + $totalMargenes +
|
||||
$resumen_totales['coste_envio']+$resumen_totales['margen_envio'] +
|
||||
$data['envio_base'], 2),
|
||||
$totalCostes + $totalMargenes +
|
||||
$resumen_totales['coste_envio'] + $resumen_totales['margen_envio'] +
|
||||
$data['envio_base'],
|
||||
2
|
||||
),
|
||||
'total_descuento' => 0,
|
||||
'total_descuentoPercent' => 0,
|
||||
|
||||
'total_precio_unidad' => $resumen_totales['precio_unidad'],
|
||||
'total_presupuesto' => round(
|
||||
$totalCostes + $totalMargenes +
|
||||
$resumen_totales['coste_envio']+$resumen_totales['margen_envio'] +
|
||||
$data['envio_base'], 2),
|
||||
$totalCostes + $totalMargenes +
|
||||
$resumen_totales['coste_envio'] + $resumen_totales['margen_envio'] +
|
||||
$data['envio_base'],
|
||||
2
|
||||
),
|
||||
'total_aceptado' => round(
|
||||
$totalCostes + $totalMargenes +
|
||||
$resumen_totales['coste_envio']+$resumen_totales['margen_envio'] +
|
||||
$data['envio_base'], 2
|
||||
$totalCostes + $totalMargenes +
|
||||
$resumen_totales['coste_envio'] + $resumen_totales['margen_envio'] +
|
||||
$data['envio_base'],
|
||||
2
|
||||
),
|
||||
|
||||
'total_factor' => round(
|
||||
($totalCostes + $totalMargenes ) /
|
||||
$resumen_totales['sumForFactor'], 2),
|
||||
($totalCostes + $totalMargenes) /
|
||||
$resumen_totales['sumForFactor'],
|
||||
2
|
||||
),
|
||||
'total_factor_ponderado' => round(
|
||||
($totalCostes + $totalMargenes ) /
|
||||
$resumen_totales['sumForFactorPonderado'], 2),
|
||||
($totalCostes + $totalMargenes) /
|
||||
$resumen_totales['sumForFactorPonderado'],
|
||||
2
|
||||
),
|
||||
|
||||
'iva_reducido' => $iva_reducido,
|
||||
'excluir_rotativa' => $excluir_rotativa,
|
||||
@ -533,13 +543,12 @@ class PresupuestoModel extends \App\Models\BaseModel
|
||||
if ($id != 0) {
|
||||
$fields['id'] = $id;
|
||||
$fields['updated_at'] = date('Y-m-d H:i:s', now());
|
||||
$fields['user_update_id'] = auth()->id();
|
||||
$fields['user_update_id'] = auth()->id();
|
||||
$this->db->table($this->table)->where('id', $id)->update($fields);
|
||||
return $id;
|
||||
}
|
||||
/* Inserccion */
|
||||
else {
|
||||
$fields['user_created_id'] = auth()->id();
|
||||
}
|
||||
/* Inserccion */ else {
|
||||
$fields['user_created_id'] = auth()->id();
|
||||
$fields['user_update_id'] = auth()->id();
|
||||
$this->db->table($this->table)->insert($fields);
|
||||
return $this->db->insertID();
|
||||
@ -637,7 +646,7 @@ class PresupuestoModel extends \App\Models\BaseModel
|
||||
$builder = $this->db
|
||||
->table($this->table . " t1")
|
||||
->select(
|
||||
"t1.id AS numero, t1.tipo_impresion_id as tipo, t1.tirada AS unidades, t1.total_aceptado as total, t1.paginas AS paginas,
|
||||
"t1.id AS numero, t1.tipo_impresion_id as tipo, t1.tirada AS unidades, t1.total_aceptado as total, t1.paginas AS paginas,
|
||||
t1.titulo AS titulo, t1.autor AS autor, t1.isbn AS isbn,
|
||||
t1.papel_formato_id AS papel_formato_id, t1.papel_formato_personalizado AS papel_formato_personalizado,
|
||||
t1.papel_formato_ancho AS papel_formato_ancho, t1.papel_formato_alto AS papel_formato_alto,
|
||||
@ -645,7 +654,7 @@ class PresupuestoModel extends \App\Models\BaseModel
|
||||
t3.codigo AS codigo_encuadernacion,
|
||||
t1.solapas AS solapas_cubierta, CAST(t1.solapas_ancho AS INT) AS solapas_ancho_cubierta,
|
||||
t1.solapas_sobrecubierta AS solapas_sobrecubierta, CAST(t1.solapas_ancho_sobrecubierta AS INT) AS solapas_ancho_sobrecubierta,"
|
||||
);
|
||||
);
|
||||
$builder->join("lg_papel_formato t2", "t1.papel_formato_id = t2.id", "left");
|
||||
$builder->join("tipos_presupuestos t3", "t1.tipo_impresion_id = t3.id", "left");
|
||||
$builder->where("t1.is_deleted", 0);
|
||||
@ -749,12 +758,13 @@ class PresupuestoModel extends \App\Models\BaseModel
|
||||
return $servicios;
|
||||
}
|
||||
|
||||
public function getPresupuestosClienteForm($cliente_id = -1){
|
||||
public function getPresupuestosClienteForm($cliente_id = -1)
|
||||
{
|
||||
$builder = $this->db
|
||||
->table($this->table . " pr")
|
||||
->table($this->table . " pr")
|
||||
->select('pr.id, pr.created_at as fecha, CONCAT(u.first_name, " ", u.last_name) AS comercial, pr.titulo,
|
||||
pr.paginas as paginas, pr.tirada, pr.total_aceptado as total, pr.estado_id as estado')
|
||||
->join ("clientes c", "pr.cliente_id = c.id", "left")
|
||||
->join("clientes c", "pr.cliente_id = c.id", "left")
|
||||
->join("users u", "c.comercial_id= u.id", "left")
|
||||
->where('pr.cliente_id', $cliente_id)
|
||||
->groupBy('pr.id');
|
||||
@ -896,6 +906,14 @@ class PresupuestoModel extends \App\Models\BaseModel
|
||||
return $description_interior . $description_cubierta . $description_sobrecubierta . $acabado;
|
||||
}
|
||||
|
||||
public function vincularCatalogo(int $presupuesto_id, int $catalogo_id): bool
|
||||
{
|
||||
return $this->update($presupuesto_id, [
|
||||
'catalogo_id' => $catalogo_id,
|
||||
'updated_at' => date('Y-m-d H:i:s'),
|
||||
'user_update_id' => auth()->id(),
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user