mirror of
https://git.imnavajas.es/jjimenez/safekat.git
synced 2025-07-25 22:52:08 +00:00
fechas pedido and imposiciones
This commit is contained in:
@ -33,6 +33,13 @@ class OrdenTrabajo extends BaseConfig
|
|||||||
"pre_imposicion_at" => "pre_imposicion_user_id",
|
"pre_imposicion_at" => "pre_imposicion_user_id",
|
||||||
|
|
||||||
];
|
];
|
||||||
|
public array $DATE_USER_MAPPING_PEDIDO = [
|
||||||
|
"inaplazable" => "inaplazable_change_user_id",
|
||||||
|
"fecha_entrega_real" => "fecha_entrega_real_change_user_id",
|
||||||
|
"fecha_impresion" => "fecha_impresion_change_user_id",
|
||||||
|
"fecha_encuadernado" => "fecha_encuadernado_change_user_id",
|
||||||
|
"fecha_entrega_externo" => "fecha_entrega_externo_change_user_id",
|
||||||
|
];
|
||||||
|
|
||||||
public function __construct()
|
public function __construct()
|
||||||
{
|
{
|
||||||
|
|||||||
@ -735,6 +735,8 @@ $routes->group('produccion', ['namespace' => 'App\Controllers\Produccion'], func
|
|||||||
*========================**/
|
*========================**/
|
||||||
$routes->post("update/tarea", 'Ordentrabajo::update_orden_trabajo_tarea');
|
$routes->post("update/tarea", 'Ordentrabajo::update_orden_trabajo_tarea');
|
||||||
$routes->post("update/date", 'Ordentrabajo::update_orden_trabajo_date');
|
$routes->post("update/date", 'Ordentrabajo::update_orden_trabajo_date');
|
||||||
|
$routes->post("update/pedido/date", 'Ordentrabajo::update_orden_trabajo_pedido_date');
|
||||||
|
$routes->post("update/pedido", 'Ordentrabajo::update_orden_trabajo_pedido');
|
||||||
$routes->post("update/user", 'Ordentrabajo::update_orden_trabajo_user');
|
$routes->post("update/user", 'Ordentrabajo::update_orden_trabajo_user');
|
||||||
$routes->post("update", 'Ordentrabajo::update_orden_trabajo');
|
$routes->post("update", 'Ordentrabajo::update_orden_trabajo');
|
||||||
$routes->post("upload/portada", 'Ordentrabajo::upload_orden_trabajo_portada');
|
$routes->post("upload/portada", 'Ordentrabajo::upload_orden_trabajo_portada');
|
||||||
|
|||||||
@ -118,7 +118,26 @@ class Ordentrabajo extends BaseController
|
|||||||
return $this->response->setJSON(["errors" => $this->validation->getErrors()])->setStatusCode(400);
|
return $this->response->setJSON(["errors" => $this->validation->getErrors()])->setStatusCode(400);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
public function update_orden_trabajo_pedido_date()
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
$bodyData = $this->request->getPost();
|
||||||
|
$r = $this->produccionService->init($bodyData["orden_trabajo_id"])->updateOrdenTrabajoPedidoDate($bodyData);
|
||||||
|
return $this->response->setJSON(["message" => lang("App.global_alert_save_success"), "status" => $r["status"], "user" => $r["user"], "data" => $bodyData]);
|
||||||
|
} catch (\Throwable $th) {
|
||||||
|
return $this->response->setJSON(["errors" => $th->getMessage(), "status" => false])->setStatusCode(500);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public function update_orden_trabajo_pedido()
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
$bodyData = $this->request->getPost();
|
||||||
|
$r = $this->produccionService->init($bodyData["orden_trabajo_id"])->updateOrdenTrabajoPedido($bodyData);
|
||||||
|
return $this->response->setJSON(["message" => lang("App.global_alert_save_success"), "status" => $r,"data" => $bodyData]);
|
||||||
|
} catch (\Throwable $th) {
|
||||||
|
return $this->response->setJSON(["errors" => $th->getMessage(), "status" => false])->setStatusCode(500);
|
||||||
|
}
|
||||||
|
}
|
||||||
public function edit($orden_trabajo_id)
|
public function edit($orden_trabajo_id)
|
||||||
{
|
{
|
||||||
// Breadcrumbs
|
// Breadcrumbs
|
||||||
@ -132,6 +151,8 @@ class Ordentrabajo extends BaseController
|
|||||||
$this->viewData["cliente"] = $this->produccionService->getCliente();
|
$this->viewData["cliente"] = $this->produccionService->getCliente();
|
||||||
$this->viewData["ot"] = $this->produccionService->getOrdenTrabajo();
|
$this->viewData["ot"] = $this->produccionService->getOrdenTrabajo();
|
||||||
$this->viewData["user_dates"] = $this->produccionService->userDates();
|
$this->viewData["user_dates"] = $this->produccionService->userDates();
|
||||||
|
$this->viewData["pedido_user_dates"] = $this->produccionService->pedidoUserDates();
|
||||||
|
|
||||||
return view(static::$viewPath . $this->editRoute, $this->viewData);
|
return view(static::$viewPath . $this->editRoute, $this->viewData);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -233,8 +254,7 @@ class Ordentrabajo extends BaseController
|
|||||||
->edit("tiempo_estimado", fn($q) => float_seconds_to_hhmm_string($q->tiempo_estimado))
|
->edit("tiempo_estimado", fn($q) => float_seconds_to_hhmm_string($q->tiempo_estimado))
|
||||||
->edit("tiempo_real", fn($q) => float_seconds_to_hhmm_string($q->tiempo_real))
|
->edit("tiempo_real", fn($q) => float_seconds_to_hhmm_string($q->tiempo_real))
|
||||||
->edit("maquina_tarea", fn($q) => ["id" => $q->id, "maquina_id" => $q->maquina_tarea, "maquina_name" => $q->maquina_nombre])
|
->edit("maquina_tarea", fn($q) => ["id" => $q->id, "maquina_id" => $q->maquina_tarea, "maquina_name" => $q->maquina_nombre])
|
||||||
->add("imposicion", fn($q) => ["id" => $q->id, "imposicion_id" => $q->imposicion_id, "name" => $q->imposicion_name,"is_presupuesto_linea" => $q->presupuesto_linea_id ? true : false ])
|
->add("imposicion", fn($q) => ["id" => $q->id, "imposicion_id" => $q->imposicion_id, "name" => $q->imposicion_name, "is_presupuesto_linea" => $q->presupuesto_linea_id ? true : false])
|
||||||
|
|
||||||
->toJson(true);
|
->toJson(true);
|
||||||
}
|
}
|
||||||
public function get_pdf($orden_trabajo_id)
|
public function get_pdf($orden_trabajo_id)
|
||||||
@ -244,7 +264,6 @@ class Ordentrabajo extends BaseController
|
|||||||
public function upload_orden_trabajo_portada()
|
public function upload_orden_trabajo_portada()
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
//code...
|
|
||||||
$file = $this->request->getFile("portada_file");
|
$file = $this->request->getFile("portada_file");
|
||||||
$bodyData = $this->request->getPost();
|
$bodyData = $this->request->getPost();
|
||||||
$id = $bodyData["orden_trabajo_id"];
|
$id = $bodyData["orden_trabajo_id"];
|
||||||
@ -252,6 +271,12 @@ class Ordentrabajo extends BaseController
|
|||||||
$fullpath = null;
|
$fullpath = null;
|
||||||
if ($file->isValid() && !$file->hasMoved()) {
|
if ($file->isValid() && !$file->hasMoved()) {
|
||||||
$fullpath = $file->store('ordenes_trabajo_portadas');
|
$fullpath = $file->store('ordenes_trabajo_portadas');
|
||||||
|
$otEntity = $this->otModel->find($id);
|
||||||
|
if ($otEntity->portada_path) {
|
||||||
|
if (file_exists($otEntity->full_path)) {
|
||||||
|
unlink($otEntity->full_path);
|
||||||
|
}
|
||||||
|
}
|
||||||
$r = $this->otModel->update($id, ["portada_path" => $fullpath]);
|
$r = $this->otModel->update($id, ["portada_path" => $fullpath]);
|
||||||
}
|
}
|
||||||
return $this->response->setJSON(["message" => "Portada subida", "data" => $r]);
|
return $this->response->setJSON(["message" => "Portada subida", "data" => $r]);
|
||||||
@ -259,7 +284,7 @@ class Ordentrabajo extends BaseController
|
|||||||
if ($fullpath) {
|
if ($fullpath) {
|
||||||
delete_files($fullpath);
|
delete_files($fullpath);
|
||||||
}
|
}
|
||||||
return $this->response->setJSON(["message" => "Portada error", "error" => $th->getMessage()])->setStatusCode($th->getCode());
|
return $this->response->setJSON(["message" => "Portada error", "error" => $th->getMessage()])->setStatusCode(500);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public function delete_orden_trabajo_portada($orden_trabajo_id)
|
public function delete_orden_trabajo_portada($orden_trabajo_id)
|
||||||
@ -283,7 +308,7 @@ class Ordentrabajo extends BaseController
|
|||||||
try {
|
try {
|
||||||
$ot = $this->otModel->find($orden_trabajo_id);
|
$ot = $this->otModel->find($orden_trabajo_id);
|
||||||
if ($ot->portada_path) {
|
if ($ot->portada_path) {
|
||||||
$filePath = WRITEPATH . 'uploads/' . $ot->portada_path;
|
$filePath = $ot->full_path;
|
||||||
if (file_exists($filePath)) {
|
if (file_exists($filePath)) {
|
||||||
|
|
||||||
$mimeType = mime_content_type($filePath);
|
$mimeType = mime_content_type($filePath);
|
||||||
|
|||||||
@ -6,9 +6,11 @@ use App\Entities\Produccion\OrdenTrabajoEntity;
|
|||||||
use App\Models\OrdenTrabajo\OrdenTrabajoModel;
|
use App\Models\OrdenTrabajo\OrdenTrabajoModel;
|
||||||
use App\Entities\Clientes\ClienteEntity;
|
use App\Entities\Clientes\ClienteEntity;
|
||||||
use App\Entities\Configuracion\UbicacionesEntity;
|
use App\Entities\Configuracion\UbicacionesEntity;
|
||||||
|
use App\Entities\Usuarios\UserEntity;
|
||||||
use App\Models\Clientes\ClienteModel;
|
use App\Models\Clientes\ClienteModel;
|
||||||
use App\Models\Pedidos\PedidoLineaModel;
|
use App\Models\Pedidos\PedidoLineaModel;
|
||||||
use App\Models\Presupuestos\PresupuestoModel;
|
use App\Models\Presupuestos\PresupuestoModel;
|
||||||
|
use App\Models\Usuarios\UserModel;
|
||||||
use CodeIgniter\Entity;
|
use CodeIgniter\Entity;
|
||||||
|
|
||||||
class PedidoEntity extends \CodeIgniter\Entity\Entity
|
class PedidoEntity extends \CodeIgniter\Entity\Entity
|
||||||
@ -40,6 +42,12 @@ class PedidoEntity extends \CodeIgniter\Entity\Entity
|
|||||||
protected $casts = [
|
protected $casts = [
|
||||||
"total_precio" => "float",
|
"total_precio" => "float",
|
||||||
"total_tirada" => "float",
|
"total_tirada" => "float",
|
||||||
|
"inaplazable" => "bool",
|
||||||
|
"fecha_entrega_real_change_user_id" => "?integer",
|
||||||
|
"fecha_impresion_change_user_id" => "?integer",
|
||||||
|
"fecha_encuadernado_change_user_id" => "?integer",
|
||||||
|
"fecha_entrega_change_externo_user_id" => "?integer",
|
||||||
|
"inaplazable_change_user_id" => "?integer",
|
||||||
];
|
];
|
||||||
/**
|
/**
|
||||||
* Devuelve la entidad `PedidoEntity` con sus relaciones
|
* Devuelve la entidad `PedidoEntity` con sus relaciones
|
||||||
@ -91,4 +99,16 @@ class PedidoEntity extends \CodeIgniter\Entity\Entity
|
|||||||
$pre = $pm->find($pedido_linea->presupuesto_id);
|
$pre = $pm->find($pedido_linea->presupuesto_id);
|
||||||
return $m->find($pre->cliente_id);
|
return $m->find($pre->cliente_id);
|
||||||
}
|
}
|
||||||
|
public function userBy(string $key): ?UserEntity
|
||||||
|
{
|
||||||
|
$user = null;
|
||||||
|
if (isset($this->attributes[$key])) {
|
||||||
|
|
||||||
|
if ($this->attributes[$key]) {
|
||||||
|
$m = model(UserModel::class);
|
||||||
|
$user = $m->find($this->attributes[$key]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $user;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -225,4 +225,8 @@ class PresupuestoLineaEntity extends \CodeIgniter\Entity\Entity
|
|||||||
{
|
{
|
||||||
return in_array($this->attributes['tipo'],['lp_rot_color','lp_rot_bn']);
|
return in_array($this->attributes['tipo'],['lp_rot_color','lp_rot_bn']);
|
||||||
}
|
}
|
||||||
|
public function isColor():bool {
|
||||||
|
return in_array($this->attributes['tipo'],['lp_color','lp_colorhq','lp_rot_color']);
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -134,10 +134,10 @@ class OrdenTrabajoEntity extends Entity
|
|||||||
{
|
{
|
||||||
return $this->pedidoEsperaBy();
|
return $this->pedidoEsperaBy();
|
||||||
}
|
}
|
||||||
public function getPortadaPath(): ?string
|
public function getFullPath(): ?string
|
||||||
{
|
{
|
||||||
helper('filesystem');
|
helper('filesystem');
|
||||||
$path = $this->attributes["portada_path"];
|
$path = WRITEPATH . 'uploads/' . $this->attributes["portada_path"];
|
||||||
$portada_path = null;
|
$portada_path = null;
|
||||||
if($path){
|
if($path){
|
||||||
if(file_exists($path)){
|
if(file_exists($path)){
|
||||||
|
|||||||
@ -110,7 +110,11 @@ class OrdenTrabajoTareaEntity extends Entity
|
|||||||
public function imposicion() : ?Imposicion
|
public function imposicion() : ?Imposicion
|
||||||
{
|
{
|
||||||
$m = model(ImposicionModel::class);
|
$m = model(ImposicionModel::class);
|
||||||
return $m->find($this->attributes["imposicion_id"]);
|
$imposicion = null;
|
||||||
|
if($this->attributes["imposicion_id"]){
|
||||||
|
$imposicion = $m->find($this->attributes["imposicion_id"]);
|
||||||
|
}
|
||||||
|
return $imposicion;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -99,7 +99,9 @@ return [
|
|||||||
|
|
||||||
|
|
||||||
"errors" => [
|
"errors" => [
|
||||||
"date_not_exist" => "Esta fecha no existe en el modelo."
|
"date_not_exist" => "Esta fecha no existe en el modelo",
|
||||||
|
"attr_not_exist" => "El atributo {0,string} no pertenece al modelo Pedido"
|
||||||
|
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -5,6 +5,7 @@ namespace App\Models\OrdenTrabajo;
|
|||||||
use App\Entities\Produccion\OrdenTrabajoDateEntity;
|
use App\Entities\Produccion\OrdenTrabajoDateEntity;
|
||||||
use CodeIgniter\Database\MySQLi\Builder;
|
use CodeIgniter\Database\MySQLi\Builder;
|
||||||
use CodeIgniter\Model;
|
use CodeIgniter\Model;
|
||||||
|
use Config\OrdenTrabajo;
|
||||||
|
|
||||||
class OrdenTrabajoDate extends Model
|
class OrdenTrabajoDate extends Model
|
||||||
{
|
{
|
||||||
@ -107,22 +108,8 @@ class OrdenTrabajoDate extends Model
|
|||||||
return $data;
|
return $data;
|
||||||
}
|
}
|
||||||
public function updateUserDateMap($orden_trabajo_id,$data){
|
public function updateUserDateMap($orden_trabajo_id,$data){
|
||||||
$mapping = [
|
$ordenTrabajoConfig = new OrdenTrabajo();
|
||||||
"fecha_encuadernado_at" => "encuadernacion_user_id",
|
$mapping = $ordenTrabajoConfig->DATE_USER_MAPPING;
|
||||||
// "fecha_externo_at" => "null",
|
|
||||||
"fecha_impresion_at" => null,
|
|
||||||
"pendiente_ferro_at" => "pendiente_ferro_user_id",
|
|
||||||
"ferro_en_cliente_at" => "ferro_en_cliente_user_id",
|
|
||||||
"ferro_ok_at" => "ferro_ok_user_id",
|
|
||||||
"interior_bn_at" => "interior_bn_user_id",
|
|
||||||
"interior_color_at" => "interior_color_user_id",
|
|
||||||
"preparacion_interiores_at" => "preparacion_interior_user_id",
|
|
||||||
"cubierta_at" => "cubierta_user_id",
|
|
||||||
"plastificado_at" => "plastificado_user_id",
|
|
||||||
"corte_at" => "corte_user_id",
|
|
||||||
"embalaje_at" => "embalaje_user_id",
|
|
||||||
"entrada_manipulado_at" => "entrada_manipulado_user_id"
|
|
||||||
];
|
|
||||||
$otUser = model(OrdenTrabajoUser::class);
|
$otUser = model(OrdenTrabajoUser::class);
|
||||||
$auth_user_id = auth()->user()->id;
|
$auth_user_id = auth()->user()->id;
|
||||||
foreach ($data as $key => $value) {
|
foreach ($data as $key => $value) {
|
||||||
|
|||||||
@ -19,6 +19,7 @@ use App\Entities\Produccion\OrdenTrabajoTareaEntity;
|
|||||||
use App\Models\Configuracion\ConfigVariableModel;
|
use App\Models\Configuracion\ConfigVariableModel;
|
||||||
use App\Models\Configuracion\MaquinaModel;
|
use App\Models\Configuracion\MaquinaModel;
|
||||||
use App\Models\OrdenTrabajo\OrdenTrabajoFileModel;
|
use App\Models\OrdenTrabajo\OrdenTrabajoFileModel;
|
||||||
|
use App\Models\Pedidos\PedidoModel;
|
||||||
use App\Models\Usuarios\UserModel;
|
use App\Models\Usuarios\UserModel;
|
||||||
use CodeIgniter\Database\BaseBuilder;
|
use CodeIgniter\Database\BaseBuilder;
|
||||||
use CodeIgniter\Database\BaseResult;
|
use CodeIgniter\Database\BaseResult;
|
||||||
@ -43,6 +44,7 @@ class ProductionService extends BaseService
|
|||||||
protected OrdenTrabajoUser $otUser;
|
protected OrdenTrabajoUser $otUser;
|
||||||
protected OrdenTrabajoEntity $ot;
|
protected OrdenTrabajoEntity $ot;
|
||||||
protected OrdenTrabajoFileModel $otFileModel;
|
protected OrdenTrabajoFileModel $otFileModel;
|
||||||
|
protected PedidoModel $pedidoModel;
|
||||||
protected UserModel $userModel;
|
protected UserModel $userModel;
|
||||||
protected string $defaultMaquinaCorteName = 'HT-1000';
|
protected string $defaultMaquinaCorteName = 'HT-1000';
|
||||||
protected MaquinaEntity $defaultMaquinaCorte;
|
protected MaquinaEntity $defaultMaquinaCorte;
|
||||||
@ -70,6 +72,7 @@ class ProductionService extends BaseService
|
|||||||
$this->otUser = model(OrdenTrabajoUser::class);
|
$this->otUser = model(OrdenTrabajoUser::class);
|
||||||
$this->userModel = model(UserModel::class);
|
$this->userModel = model(UserModel::class);
|
||||||
$this->otFileModel = model(OrdenTrabajoFileModel::class);
|
$this->otFileModel = model(OrdenTrabajoFileModel::class);
|
||||||
|
$this->pedidoModel = model(PedidoModel::class);
|
||||||
$this->ordenTrabajoConfig = config('OrdenTrabajo');
|
$this->ordenTrabajoConfig = config('OrdenTrabajo');
|
||||||
}
|
}
|
||||||
public function init(int $orden_trabajo_id): self
|
public function init(int $orden_trabajo_id): self
|
||||||
@ -627,6 +630,7 @@ class ProductionService extends BaseService
|
|||||||
"tareas_encuadernacion" => $this->tareas_encuadernacion(),
|
"tareas_encuadernacion" => $this->tareas_encuadernacion(),
|
||||||
"tareas_preimpresion" => $this->tareas_preimpresion(),
|
"tareas_preimpresion" => $this->tareas_preimpresion(),
|
||||||
"tareas_impresion" => $this->tareas_impresion(),
|
"tareas_impresion" => $this->tareas_impresion(),
|
||||||
|
"tiempo_procesamiento" => $this->getTiempoProcesamientoHHMM(),
|
||||||
];
|
];
|
||||||
return $summary;
|
return $summary;
|
||||||
}
|
}
|
||||||
@ -650,7 +654,9 @@ class ProductionService extends BaseService
|
|||||||
"linea_cubierta" => $this->presupuesto->presupuestoLineaCubierta(),
|
"linea_cubierta" => $this->presupuesto->presupuestoLineaCubierta(),
|
||||||
"peso_unidad" => $logistica_data["peso_unidad"],
|
"peso_unidad" => $logistica_data["peso_unidad"],
|
||||||
"peso_pedido" => $logistica_data["peso_pedido"],
|
"peso_pedido" => $logistica_data["peso_pedido"],
|
||||||
"imposicion" => $this->getImposicionTareaImpresion()
|
"imposicion" => $this->getImposicionTareaImpresion(),
|
||||||
|
"tiempo_procesamiento" => $this->getTiempoProcesamientoHHMM(),
|
||||||
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
public function getImposicionTareaImpresion(): ?Imposicion
|
public function getImposicionTareaImpresion(): ?Imposicion
|
||||||
@ -658,10 +664,10 @@ class ProductionService extends BaseService
|
|||||||
$imposicion = null;
|
$imposicion = null;
|
||||||
$impresionInteriorBnImposicion = $this->getTareaImpresionInteriorBn()?->imposicion();
|
$impresionInteriorBnImposicion = $this->getTareaImpresionInteriorBn()?->imposicion();
|
||||||
$impresionInteriorColorImposicion = $this->getTareaImpresionInteriorColor()?->imposicion();
|
$impresionInteriorColorImposicion = $this->getTareaImpresionInteriorColor()?->imposicion();
|
||||||
if($impresionInteriorBnImposicion){
|
if ($impresionInteriorBnImposicion) {
|
||||||
$imposicion = $impresionInteriorBnImposicion;
|
$imposicion = $impresionInteriorBnImposicion;
|
||||||
}
|
}
|
||||||
if($impresionInteriorColorImposicion){
|
if ($impresionInteriorColorImposicion) {
|
||||||
$imposicion = $impresionInteriorColorImposicion;
|
$imposicion = $impresionInteriorColorImposicion;
|
||||||
}
|
}
|
||||||
return $imposicion;
|
return $imposicion;
|
||||||
@ -755,16 +761,45 @@ class ProductionService extends BaseService
|
|||||||
} else {
|
} else {
|
||||||
$result = ["user" => null, "status" => false];
|
$result = ["user" => null, "status" => false];
|
||||||
}
|
}
|
||||||
|
$this->updateProgress();
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
public function updateOrdenTrabajoPedidoDate($data): array
|
||||||
|
{
|
||||||
|
$status = false;
|
||||||
|
$user = auth()->user();
|
||||||
|
$row = [];
|
||||||
|
$pedidoDatesUser = $this->ordenTrabajoConfig->DATE_USER_MAPPING_PEDIDO;
|
||||||
|
$attrPedido = $data["name"];
|
||||||
|
if (isset($pedidoDatesUser[$attrPedido])) {
|
||||||
|
$row[$attrPedido] = Time::createFromFormat("Y-m-d", $data[$attrPedido])->format('Y-m-d 00:00:00');
|
||||||
|
$attrUserPedido = $pedidoDatesUser[$attrPedido];
|
||||||
|
$row[$attrUserPedido] = $user->id;
|
||||||
|
$status = $this->pedidoModel->update($this->pedido->id, $row);
|
||||||
|
$this->updateProgress();
|
||||||
|
} else {
|
||||||
|
throw new Exception(lang('Produccion.errors.attr_not_exist', [$attrPedido]));
|
||||||
|
}
|
||||||
|
|
||||||
|
return [
|
||||||
|
"user" => $user,
|
||||||
|
"status" => $status
|
||||||
|
];
|
||||||
|
}
|
||||||
public function updateOrdenTrabajo($data): bool
|
public function updateOrdenTrabajo($data): bool
|
||||||
{
|
{
|
||||||
if(isset($data["is_pedido_espera"])){
|
if (isset($data["is_pedido_espera"])) {
|
||||||
$data["pedido_espera_by"] = auth()->user()->id;
|
$data["pedido_espera_by"] = auth()->user()->id;
|
||||||
}
|
}
|
||||||
return $this->otModel->update($this->ot->id, $data);
|
return $this->otModel->update($this->ot->id, $data);
|
||||||
}
|
}
|
||||||
|
public function updateOrdenTrabajoPedido($data)
|
||||||
|
{
|
||||||
|
if (isset($data["inaplazable"])) {
|
||||||
|
$data[$this->ordenTrabajoConfig->DATE_USER_MAPPING_PEDIDO["inaplazable"]] = auth()->user()->id;
|
||||||
|
}
|
||||||
|
return $this->pedidoModel->update($this->pedido->id, $data);
|
||||||
|
}
|
||||||
/**========================================================================
|
/**========================================================================
|
||||||
* RELATION METHODS
|
* RELATION METHODS
|
||||||
*========================================================================**/
|
*========================================================================**/
|
||||||
@ -1022,18 +1057,60 @@ class ProductionService extends BaseService
|
|||||||
}
|
}
|
||||||
return $status;
|
return $status;
|
||||||
}
|
}
|
||||||
public function userDates() : array
|
public function userDates(): array
|
||||||
{
|
{
|
||||||
$userDates = [];
|
$userDates = [];
|
||||||
foreach ($this->ordenTrabajoConfig->DATE_USER_MAPPING as $key => $value) {
|
foreach ($this->ordenTrabajoConfig->DATE_USER_MAPPING as $key => $value) {
|
||||||
$otUserEntity = $this->otUser->where("orden_trabajo_id",$this->ot->id)->first();
|
$otUserEntity = $this->otUser->where("orden_trabajo_id", $this->ot->id)->first();
|
||||||
$userEntity = $otUserEntity->userBy($value);
|
$userEntity = $otUserEntity->userBy($value);
|
||||||
if($userEntity){
|
if ($userEntity) {
|
||||||
$userDates[$key] = $userEntity->full_name;
|
$userDates[$key] = $userEntity->full_name;
|
||||||
}else{
|
} else {
|
||||||
$userDates[$key] = null;
|
$userDates[$key] = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return $userDates;
|
return $userDates;
|
||||||
}
|
}
|
||||||
|
public function pedidoUserDates(): array
|
||||||
|
{
|
||||||
|
$pedidoUserDates = [];
|
||||||
|
foreach ($this->ordenTrabajoConfig->DATE_USER_MAPPING_PEDIDO as $key => $value) {
|
||||||
|
$userEntity = $this->pedido->userBy($value);
|
||||||
|
if ($userEntity) {
|
||||||
|
$pedidoUserDates[$key] = $userEntity->full_name;
|
||||||
|
} else {
|
||||||
|
$pedidoUserDates[$key] = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $pedidoUserDates;
|
||||||
|
}
|
||||||
|
public function getTiempoProcesamientoHHMM(): string
|
||||||
|
{
|
||||||
|
$time_tareas_seconds = array_map(fn($q) => $q->tiempo_estimado ?? 0, $this->ot->tareas());
|
||||||
|
$seconds = array_sum($time_tareas_seconds);
|
||||||
|
return float_seconds_to_hhmm_string($seconds);
|
||||||
|
}
|
||||||
|
public function updateProgress(): bool
|
||||||
|
{
|
||||||
|
$userDates = $this->ordenTrabajoConfig->DATE_USER_MAPPING;
|
||||||
|
$pedidoUserDates = $this->ordenTrabajoConfig->DATE_USER_MAPPING_PEDIDO;
|
||||||
|
|
||||||
|
$fill_dates = 0;
|
||||||
|
$status = false;
|
||||||
|
$total = count($userDates) + count($pedidoUserDates);
|
||||||
|
if ($this->ot->estado != "F") {
|
||||||
|
foreach ($userDates as $key => $value) {
|
||||||
|
if ($this->ot->dates()->{$key} != null) $fill_dates++;
|
||||||
|
}
|
||||||
|
foreach ($pedidoUserDates as $key => $value) {
|
||||||
|
if ($this->pedido->{$key} != null) $fill_dates++;
|
||||||
|
}
|
||||||
|
|
||||||
|
$progreso = (float) $fill_dates / $total * 100;
|
||||||
|
$status = $this->otModel->update($this->ot->id, ["progreso" => round($progreso,2)]);
|
||||||
|
}else{
|
||||||
|
$status = $this->otModel->update($this->ot->id, ["progreso" => 100]);
|
||||||
|
}
|
||||||
|
return $status;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -15,27 +15,33 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<!-- Date 1-->
|
<!-- Date 1-->
|
||||||
<div class="col-xs-12 col-md-4 col-lg-4 mb-2">
|
<div class="col-xs-12 col-md-4 col-lg-4 mb-2">
|
||||||
<label for="ot-tiempo-procesamiento" class="form-label"><?= @lang("Produccion.tiempo_procesamiento") ?></label>
|
<label for="ot-tiempo-procesamiento" class="form-label"><?= @lang("Produccion.tiempo_procesamiento") ?> (HH:MM)</label>
|
||||||
<input type="text" class="form-control" name="tiempo_procesamiento" placeholder="HH:MM" id="ot-tiempo-procesamiento" data-input disabled>
|
<input type="text" class="form-control" name="tiempo_procesamiento" placeholder="HH:MM" id="ot-tiempo-procesamiento" data-input disabled>
|
||||||
</div>
|
</div>
|
||||||
<!-- Date 2-->
|
<!-- Date 2-->
|
||||||
|
|
||||||
<div class="col-xs-12 col-md-4 col-lg-4 mb-2">
|
<div class="col-xs-12 col-md-4 col-lg-4 mb-2">
|
||||||
<label for="ot-fecha-entrega" class="form-label"><?= @lang("Produccion.fecha_impresion") ?></label>
|
<label for="ot-fecha-entrega" class="form-label"><?= @lang("Produccion.fecha_impresion") ?></label>
|
||||||
<input type="text" class="form-control ot-date" placeholder="DD/MM/YYYY" name="fecha_impresion_at" id="ot-fecha-impresion" data-input>
|
<input type="text" class="form-control ot-pedido" placeholder="DD/MM/YYYY" name="fecha_impresion" id="ot-fecha-impresion" data-input>
|
||||||
|
<div class="form-text"><?= $pedido_user_dates["fecha_impresion"] ?></div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<!-- Date 2-->
|
<!-- Date 2-->
|
||||||
|
|
||||||
<div class="col-xs-12 col-md-4 col-lg-4 mb-2">
|
<div class="col-xs-12 col-md-4 col-lg-4 mb-2">
|
||||||
<label for="ot-fecha-entrega" class="form-label"><?= @lang("Produccion.fecha_encuadernado") ?></label>
|
<label for="ot-fecha-entrega" class="form-label"><?= @lang("Produccion.fecha_encuadernado") ?></label>
|
||||||
<input type="date" class="form-control ot-date" placeholder="DD/MM/YYYY" name="fecha_encuadernado_at" id="ot-fecha-encuadernado" data-input />
|
<input type="date" class="form-control ot-pedido" placeholder="DD/MM/YYYY" name="fecha_encuadernado" id="ot-fecha-encuadernado" data-input />
|
||||||
|
<div class="form-text"><?= $pedido_user_dates["fecha_encuadernado"] ?></div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<!-- Date 4-->
|
<!-- Date 4-->
|
||||||
|
|
||||||
<div class="col-xs-12 col-md-4 col-lg-4 mb-2">
|
<div class="col-xs-12 col-md-4 col-lg-4 mb-2">
|
||||||
<label for="ot-fecha-entrega" class="form-label"><?= @lang("Produccion.fecha_entrega_externo") ?></label>
|
<label for="ot-fecha-entrega" class="form-label"><?= @lang("Produccion.fecha_entrega_externo") ?></label>
|
||||||
<input type="date" class="form-control ot-date" placeholder="DD/MM/YYYY" name="fecha_entrega_externo" id="ot-fecha-entrega-externo" data-input />
|
<input type="date" class="form-control ot-pedido" placeholder="DD/MM/YYYY" name="fecha_entrega_externo" id="ot-fecha-entrega-externo" data-input />
|
||||||
|
<div class="form-text"><?= $pedido_user_dates["fecha_entrega_externo"] ?></div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<!-- Date 5-->
|
<!-- Date 5-->
|
||||||
<div class="col-xs-12 col-md-4 col-lg-4 mb-2">
|
<div class="col-xs-12 col-md-4 col-lg-4 mb-2">
|
||||||
@ -43,12 +49,13 @@
|
|||||||
<div>
|
<div>
|
||||||
|
|
||||||
<label for="ot-fecha-entrega" class="form-label"><?= @lang("Produccion.fecha_entrega_real") ?></label>
|
<label for="ot-fecha-entrega" class="form-label"><?= @lang("Produccion.fecha_entrega_real") ?></label>
|
||||||
<input type="date" class="form-control ot-date" placeholder="DD/MM/YYYY" name="fecha_entrega_real_at" id="ot-fecha-entrega-real" data-input />
|
<input type="date" class="form-control ot-pedido" placeholder="DD/MM/YYYY" name="fecha_entrega_real" id="ot-fecha-entrega-real" data-input />
|
||||||
|
<div class="form-text"><?= $pedido_user_dates["fecha_entrega_real"] ?></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="d-flex flex-column">
|
<div class="d-flex flex-column">
|
||||||
|
|
||||||
<label class="switch switch-danger switch-lg mt-1">
|
<label class="switch switch-danger switch-lg mt-1">
|
||||||
<input type="checkbox" class="switch-input ot-preview" name="fecha_entrega_warning" />
|
<input type="checkbox" class="switch-input ot-pedido-check" name="inaplazable" />
|
||||||
<span class="switch-toggle-slider">
|
<span class="switch-toggle-slider">
|
||||||
<span class="switch-on">
|
<span class="switch-on">
|
||||||
<i class="ti ti-alert-triangle"></i>
|
<i class="ti ti-alert-triangle"></i>
|
||||||
@ -59,6 +66,7 @@
|
|||||||
</span>
|
</span>
|
||||||
<span class="switch-label fw-large">Inaplazable</span>
|
<span class="switch-label fw-large">Inaplazable</span>
|
||||||
</label>
|
</label>
|
||||||
|
<div class="form-text"><?= $pedido_user_dates["inaplazable"] ?></div>
|
||||||
<label class="switch switch-lg mt-1">
|
<label class="switch switch-lg mt-1">
|
||||||
<input type="checkbox" class="switch-input ot-preview" name="fecha_entrega_warning_revised" />
|
<input type="checkbox" class="switch-input ot-preview" name="fecha_entrega_warning_revised" />
|
||||||
<span class="switch-toggle-slider">
|
<span class="switch-toggle-slider">
|
||||||
|
|||||||
@ -15,7 +15,7 @@
|
|||||||
<div class="col-md-8">
|
<div class="col-md-8">
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<h1 class="card-title mb-0">[<?= $presupuesto->id ?>]<?= $presupuesto->titulo ?></h1>
|
<h1 class="card-title mb-0">[<?= $presupuesto->id ?>]<?= $presupuesto->titulo ?></h1>
|
||||||
<h4 class="card-title mb-0 text-secondary"><?= $cliente->nombre ?></h4>
|
<h4 class="card-title mb-0 text-secondary"><?= $cliente->nombre ?> (<?= $cliente->alias ?>)</h4>
|
||||||
<h3 class="card-title mb-3">OT : <?= $ot->id ?></h3>
|
<h3 class="card-title mb-3">OT : <?= $ot->id ?></h3>
|
||||||
<div class="d-flex align-items-center">
|
<div class="d-flex align-items-center">
|
||||||
<div class="card-info">
|
<div class="card-info">
|
||||||
|
|||||||
@ -15,7 +15,7 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-12 mb-3">
|
<div class="col-md-12 mb-3">
|
||||||
<label class="form-label" for="ot-progress-bar-parent"><?= @lang("App.progress") ?></label>
|
<label class="form-label" for="ot-progress-bar-parent"><?= @lang("App.progress") ?></label>
|
||||||
<div class="progress" id="ot-progress-bar-parent">
|
<div class="progress" style="height: 25px;" id="ot-progress-bar-parent">
|
||||||
<div id="ot-progress-bar" class="progress-bar" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100"></div>
|
<div id="ot-progress-bar" class="progress-bar" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -26,34 +26,34 @@
|
|||||||
<!-- Preformato -->
|
<!-- Preformato -->
|
||||||
<div class="col-xs-12 col-md-4 col-lg-4 mb-2 w-100">
|
<div class="col-xs-12 col-md-4 col-lg-4 mb-2 w-100">
|
||||||
<label for="ot-preformato-btn" class="form-label"><?= @lang("Produccion.pre_formato") ?></label>
|
<label for="ot-preformato-btn" class="form-label"><?= @lang("Produccion.pre_formato") ?></label>
|
||||||
<input type="text" class="form-control ot-date" placeholder="DD/MM/YYYY" name="pre_formato_at" id="ot-preformato-btn">
|
<input type="text" class="form-control ot-date" placeholder="DD/MM/YYYY" name="pre_formato_at" id="ot-preformato-date">
|
||||||
<div class="form-text"><?=$user_dates["pre_formato_at"]?></div>
|
<div class="form-text"><?=$user_dates["pre_formato_at"]?></div>
|
||||||
</div>
|
</div>
|
||||||
<!-- Prelomo -->
|
<!-- Prelomo -->
|
||||||
<div class="col-xs-12 col-md-4 col-lg-4 mb-2 w-100">
|
<div class="col-xs-12 col-md-4 col-lg-4 mb-2 w-100">
|
||||||
<label for="ot-prelomo-btn" class="form-label"><?= @lang("Produccion.pre_lomo") ?></label>
|
<label for="ot-prelomo-btn" class="form-label"><?= @lang("Produccion.pre_lomo") ?></label>
|
||||||
<input type="text" class="form-control ot-date" placeholder="DD/MM/YYYY" name="pre_lomo_at" id="ot-prelomo-btn">
|
<input type="text" class="form-control ot-date" placeholder="DD/MM/YYYY" name="pre_lomo_at" id="ot-prelomo-date">
|
||||||
<div class="form-text"><?=$user_dates["pre_lomo_at"]?></div>
|
<div class="form-text"><?=$user_dates["pre_lomo_at"]?></div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<!-- Presolapa -->
|
<!-- Presolapa -->
|
||||||
<div class="col-xs-12 col-md-4 col-lg-4 mb-2 w-100">
|
<div class="col-xs-12 col-md-4 col-lg-4 mb-2 w-100">
|
||||||
<label for="ot-presolapa-btn" class="form-label"><?= @lang("Produccion.pre_solapa") ?></label>
|
<label for="ot-presolapa-btn" class="form-label"><?= @lang("Produccion.pre_solapa") ?></label>
|
||||||
<input type="text" class="form-control ot-date" placeholder="DD/MM/YYYY" name="pre_solapa_at" id="ot-presolapa-btn">
|
<input type="text" class="form-control ot-date" placeholder="DD/MM/YYYY" name="pre_solapa_at" id="ot-presolapa-date">
|
||||||
<div class="form-text"><?=$user_dates["pre_solapa_at"]?></div>
|
<div class="form-text"><?=$user_dates["pre_solapa_at"]?></div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<!-- Precodbarras -->
|
<!-- Precodbarras -->
|
||||||
<div class="col-xs-12 col-md-4 col-lg-4 mb-2 w-100">
|
<div class="col-xs-12 col-md-4 col-lg-4 mb-2 w-100">
|
||||||
<label for="ot-precodbarras-btn" class="form-label"><?= @lang("Produccion.pre_codbarras") ?></label>
|
<label for="ot-precodbarras-btn" class="form-label"><?= @lang("Produccion.pre_codbarras") ?></label>
|
||||||
<input type="text" class="form-control ot-date" placeholder="DD/MM/YYYY" name="pre_codbarras_at" id="ot-precodbarras-btn">
|
<input type="text" class="form-control ot-date" placeholder="DD/MM/YYYY" name="pre_codbarras_at" id="ot-precodbarras-date">
|
||||||
<div class="form-text"><?=$user_dates["pre_codbarras_at"]?></div>
|
<div class="form-text"><?=$user_dates["pre_codbarras_at"]?></div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<!-- Preimposicion -->
|
<!-- Preimposicion -->
|
||||||
<div class="col-xs-12 col-md-4 col-lg-4 mb-2 w-100">
|
<div class="col-xs-12 col-md-4 col-lg-4 mb-2 w-100">
|
||||||
<label for="ot-preimposicion-btn" class="form-label"><?= @lang("Produccion.pre_imposicion") ?></label>
|
<label for="ot-preimposicion-btn" class="form-label"><?= @lang("Produccion.pre_imposicion") ?></label>
|
||||||
<input type="text" class="form-control ot-date" placeholder="DD/MM/YYYY" name="pre_imposicion_at" id="ot-preimposicion-btn">
|
<input type="text" class="form-control ot-date" placeholder="DD/MM/YYYY" name="pre_imposicion_at" id="ot-preimposicion-date">
|
||||||
<div class="form-text"><?=$user_dates["pre_imposicion_at"]?></div>
|
<div class="form-text"><?=$user_dates["pre_imposicion_at"]?></div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@ -62,7 +62,7 @@
|
|||||||
<!-- Progress -->
|
<!-- Progress -->
|
||||||
<div class="col-xs-12 col-md-4 col-lg-4 mb-2 w-100">
|
<div class="col-xs-12 col-md-4 col-lg-4 mb-2 w-100">
|
||||||
<label for="ot-impresion-color" class="form-label"><?= @lang("Produccion.impresion_bn") ?></label>
|
<label for="ot-impresion-color" class="form-label"><?= @lang("Produccion.impresion_bn") ?></label>
|
||||||
<input type="text" class="form-control ot-date" placeholder="DD/MM/YYYY" name="interior_bn_at" id="ot-impresion-btn">
|
<input type="text" class="form-control ot-date" placeholder="DD/MM/YYYY" name="interior_bn_at" id="ot-impresion-bn">
|
||||||
<div class="form-text"><?=$user_dates["interior_bn_at"]?></div>
|
<div class="form-text"><?=$user_dates["interior_bn_at"]?></div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@ -139,7 +139,7 @@
|
|||||||
<div class="col-xs-12 col-md-4 col-lg-4 mb-2 w-100">
|
<div class="col-xs-12 col-md-4 col-lg-4 mb-2 w-100">
|
||||||
<label for="ot-embalaje" class="form-label"><?= @lang("Produccion.embalaje") ?></label>
|
<label for="ot-embalaje" class="form-label"><?= @lang("Produccion.embalaje") ?></label>
|
||||||
<input type="text" class="form-control ot-date" placeholder="DD/MM/YYYY" name="embalaje_at" id="ot-embalaje">
|
<input type="text" class="form-control ot-date" placeholder="DD/MM/YYYY" name="embalaje_at" id="ot-embalaje">
|
||||||
<div class="form-text"><span class="badge text-bg-primary"><?=$user_dates["embalaje_at"]?></span></div>
|
<div class="form-text"><?=$user_dates["embalaje_at"]?></div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<!-- Progress -->
|
<!-- Progress -->
|
||||||
|
|||||||
@ -50,7 +50,7 @@ $settings = $session->get('settings');
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-8">
|
<div class="col-8">
|
||||||
<div class="px-2 d-flex flex justify-content-between align-items-center mb-2 border boder-1 border-dark bg-primary text-white rounded-pill bordered border-secondary">
|
<div class="px-2 d-flex flex justify-content-between align-items-center mb-2 border boder-1 border-dark bg-primary text-white rounded-pill bordered border-secondary">
|
||||||
<span><strong><?= $dates?->fecha_encuadernado_at ? week_day_humanize(Time::createFromFormat("Y-m-d", $dates?->fecha_encuadernado_at)->getDayOfWeek(), true) : "" ?></strong></span>
|
<span><strong><?= $pedido->fecha_encuadernado ? week_day_humanize(Time::createFromFormat("Y-m-d H:i:s", $pedido->fecha_encuadernado)->getDayOfWeek(), true) : "" ?></strong></span>
|
||||||
<span><strong>Comercial:</strong> <?= $cliente->first_name . " " . $cliente->comercial()->last_name ?> </span>
|
<span><strong>Comercial:</strong> <?= $cliente->first_name . " " . $cliente->comercial()->last_name ?> </span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -64,8 +64,8 @@ $settings = $session->get('settings');
|
|||||||
<div class="row p-2">
|
<div class="row p-2">
|
||||||
<div class="col-4 h-100">
|
<div class="col-4 h-100">
|
||||||
<div class="row px-2 d-flex flex justify-content-between align-items-center">
|
<div class="row px-2 d-flex flex justify-content-between align-items-center">
|
||||||
<div class="col-6 w-75 border border-1 border-dark text-center <?= $ot->fecha_entrega_warning ? "bg-danger" : "bg-secondary" ?> ">
|
<div class="col-6 w-75 border border-1 border-dark text-center <?= $ot->fecha_entrega_warning ? "bg-danger" : "bg-white" ?> ">
|
||||||
<span class="text-white" id="fecha_encuadernado_at"><strong><?= $dates?->fecha_encuadernado_at ? Time::createFromFormat("Y-m-d", $dates?->fecha_encuadernado_at)?->format("d/m/Y") : "" ?></strong></span>
|
<span class="<?= $ot->fecha_entrega_warning ? "text-white" : "text-black" ?>" id="fecha_encuadernado_at"><strong><?= $pedido->fecha_encuadernado ? Time::createFromFormat("Y-m-d H:i:s", $pedido->fecha_encuadernado)->format('d/m/Y') : "" ?></strong></span>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-6 w-25 border border-1 border-dark text-center bg-secondary text-white">
|
<div class="col-6 w-25 border border-1 border-dark text-center bg-secondary text-white">
|
||||||
<strong><?=isset($encuadernaciones[0]) ? $encuadernaciones[0]->tarifa()->code ?? "?" : "?" ?></strong>
|
<strong><?=isset($encuadernaciones[0]) ? $encuadernaciones[0]->tarifa()->code ?? "?" : "?" ?></strong>
|
||||||
@ -102,8 +102,8 @@ $settings = $session->get('settings');
|
|||||||
<div class="col-6 h-50 square text-center text-dark bg-white border border-right border-dark">
|
<div class="col-6 h-50 square text-center text-dark bg-white border border-right border-dark">
|
||||||
<?= $linea_impresion->papel_impresion()->papel_code_ot ?>
|
<?= $linea_impresion->papel_impresion()->papel_code_ot ?>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-6 h-50 square text-center text-dark bg-secondary border border-right border-dark">
|
<div class="col-6 h-50 square text-center <?=$linea_impresion->isColor() ? "cmyk" : "bn" ?> border border-right border-dark">
|
||||||
0:3
|
<?= $tiempo_procesamiento ?>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-6 h-50 square bg-primary text-center text-white border border-right border-dark">
|
<div class="col-6 h-50 square bg-primary text-center text-white border border-right border-dark">
|
||||||
<?= $linea_cubierta->papel_impresion()->papel_code_ot ?>
|
<?= $linea_cubierta->papel_impresion()->papel_code_ot ?>
|
||||||
@ -128,7 +128,7 @@ $settings = $session->get('settings');
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row mb-2">
|
<div class="row">
|
||||||
<div class="col-8">
|
<div class="col-8">
|
||||||
<table class="h-50">
|
<table class="h-50">
|
||||||
<tr>
|
<tr>
|
||||||
@ -186,8 +186,8 @@ $settings = $session->get('settings');
|
|||||||
<div class="imposicion">
|
<div class="imposicion">
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<th>Imposicion</th>
|
<th class="w-50">Imposicion</th>
|
||||||
<td><?= $imposicion->full_name ?></td>
|
<td><?= $imposicion?->full_name ?? "" ?></td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
@ -201,13 +201,13 @@ $settings = $session->get('settings');
|
|||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<th class="t-header" style="width: 10%;"><?=lang('Produccion.size')?></th>
|
<th class="t-header" style="width: 10%;"><?=lang('Produccion.size')?></th>
|
||||||
<td class="t-cell"> ?? </td>
|
<td class="t-cell text-center"> <?= $papel_formato->ancho ?>x<?= $papel_formato->alto ?> </td>
|
||||||
<th class="t-header" style="width: 10%;"><?=lang('Produccion.ejemplares')?></th>
|
<th class="t-header" style="width: 10%;"><?=lang('Produccion.ejemplares')?></th>
|
||||||
<td class="t-cell"> <?=$presupuesto->tirada ?> </td>
|
<td class="t-cell text-center"> <?=$presupuesto->tirada ?> </td>
|
||||||
<th class="t-header" style="width: 10%;"><?=lang('Produccion.tipo')?></th>
|
<th class="t-header" style="width: 10%;"><?=lang('Produccion.tipo')?></th>
|
||||||
<td class="t-cell"> <?=$presupuesto->tipo ?> </td>
|
<td class="t-cell text-center"> <?=$linea_impresion->tipo ?> </td>
|
||||||
<th class="t-header" style="width: 10%;"><?=lang('Produccion.lomo')?></th>
|
<th class="t-header" style="width: 10%;"><?=lang('Produccion.lomo')?></th>
|
||||||
<td class="t-cell"> <?=$presupuesto->lomo_cubierta ?> </td>
|
<td class="t-cell text-center"> <?=number_format($presupuesto->lomo_cubierta,2,',','.') ?> </td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
<table>
|
<table>
|
||||||
@ -294,13 +294,13 @@ $settings = $session->get('settings');
|
|||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<th class="t-header" style="width: 10%;">Plastificado</th>
|
<th class="t-header" style="width: 10%;">Plastificado</th>
|
||||||
<td class="t-cell"><?= $acabados[0]->tarifa()->nombre ?></td>
|
<td class="t-cell text-center"><?= $acabados[0]->tarifa()->nombre ?></td>
|
||||||
<th class="t-header" style="width: 10%;">UVI</th>
|
<th class="t-header" style="width: 10%;">UVI</th>
|
||||||
<td class="t-cell"> ?? </td>
|
<td class="t-cell text-center"> ?? </td>
|
||||||
<th class="t-header" style="width: 10%;">Máquina</th>
|
<th class="t-header" style="width: 10%;">Máquina</th>
|
||||||
<td class="t-cell"><?= implode("/", array_map(fn($q) => $q->nombre, $acabados[0]->maquinas())) ?> </td>
|
<td class="t-cell text-center"><?= implode("/", array_map(fn($q) => $q->nombre, $acabados[0]->maquinas())) ?> </td>
|
||||||
<th class="t-header" style="width: 10%;">Operario</th>
|
<th class="t-header " style="width: 10%;">Operario</th>
|
||||||
<td class="t-cell"><?= $ot->users()?->plastificado_by?->getFullName() ?? null ?> </td>
|
<td class="t-cell text-center"><?= $ot->users()?->plastificado_by?->getFullName() ?? null ?> </td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
<table>
|
<table>
|
||||||
@ -372,7 +372,7 @@ $settings = $session->get('settings');
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-12 d-flex justify-content-center align-items-center">
|
<div class="col-md-12 d-flex justify-content-center align-items-center">
|
||||||
<span>© 2024 SAFEKAT. Todos los derechos reservados.</span>
|
<span class="footer">© 2024 SAFEKAT. Todos los derechos reservados.</span>
|
||||||
</div>
|
</div>
|
||||||
<script src=<?= site_url("themes/vuexy/vendor/libs/html2pdf/html2pdf.bundle.min.js") ?>></script>
|
<script src=<?= site_url("themes/vuexy/vendor/libs/html2pdf/html2pdf.bundle.min.js") ?>></script>
|
||||||
<script src="<?= site_url('themes/vuexy/vendor/libs/jquery/jquery.js') ?>"></script>
|
<script src="<?= site_url('themes/vuexy/vendor/libs/jquery/jquery.js') ?>"></script>
|
||||||
|
|||||||
@ -1,12 +1,12 @@
|
|||||||
$(() => {
|
$(() => {
|
||||||
// console.log("PDF")
|
console.log("PDF")
|
||||||
// var opt = {
|
var opt = {
|
||||||
// margin: 2,
|
margin: 2,
|
||||||
// filename: "PDF_OrdenTrabajo_" + $(".pdf-wrapper").data("id") + ".pdf",
|
filename: "PDF_OrdenTrabajo_" + $(".pdf-wrapper").data("id") + ".pdf",
|
||||||
// image: { type: 'jpeg', quality: 1 },
|
image: { type: 'jpeg', quality: 1 },
|
||||||
// html2canvas: { scale: 3 },
|
html2canvas: { scale: 4 },
|
||||||
// jsPDF: { unit: 'mm', format: 'a4', orientation: 'portrait' }
|
jsPDF: { unit: 'mm', format: 'a4', orientation: 'portrait' }
|
||||||
// };
|
};
|
||||||
// let elementToPdf = $('body')[0]
|
let elementToPdf = $('body')[0]
|
||||||
// html2pdf().set(opt).from(elementToPdf).save()
|
html2pdf().set(opt).from(elementToPdf).save()
|
||||||
})
|
})
|
||||||
@ -1,7 +1,7 @@
|
|||||||
import Ajax from "../../components/ajax.js"
|
import Ajax from "../../components/ajax.js"
|
||||||
import ClassSelect from "../../components/select2.js";
|
import ClassSelect from "../../components/select2.js";
|
||||||
import DatePicker from "../../components/datepicker.js";
|
import DatePicker from "../../components/datepicker.js";
|
||||||
import { alertConfirmationDelete, alertSuccess } from "../../components/alerts/sweetAlert.js";
|
import { alertConfirmAction, alertConfirmationDelete, alertSuccess } from "../../components/alerts/sweetAlert.js";
|
||||||
import Modal from "../../components/modal.js"
|
import Modal from "../../components/modal.js"
|
||||||
import FileUploadDropzone from '../../components/forms/fileUploadDropzone.js';
|
import FileUploadDropzone from '../../components/forms/fileUploadDropzone.js';
|
||||||
class OrdenTrabajo {
|
class OrdenTrabajo {
|
||||||
@ -60,13 +60,7 @@ class OrdenTrabajo {
|
|||||||
dateFormat: "Y-m-d",
|
dateFormat: "Y-m-d",
|
||||||
allowInput: true,
|
allowInput: true,
|
||||||
}
|
}
|
||||||
this.tiempoProcesamiento = new DatePicker(this.otForm.find("#ot-tiempo-procesamiento"), {
|
this.tiempoProcesamiento = this.otForm.find("#ot-tiempo-procesamiento")
|
||||||
dateFormat: "H:i",
|
|
||||||
enableTime: true,
|
|
||||||
noCalendar: true,
|
|
||||||
time_24hr: true,
|
|
||||||
allowInput: true,
|
|
||||||
})
|
|
||||||
this.fechaImpresion = new DatePicker(this.otForm.find("#ot-fecha-impresion"), option)
|
this.fechaImpresion = new DatePicker(this.otForm.find("#ot-fecha-impresion"), option)
|
||||||
this.fechaEncuadernado = new DatePicker(this.otForm.find("#ot-fecha-encuadernado"), option)
|
this.fechaEncuadernado = new DatePicker(this.otForm.find("#ot-fecha-encuadernado"), option)
|
||||||
this.fechaEntregaExterno = new DatePicker(this.otForm.find("#ot-fecha-entrega-externo"), option)
|
this.fechaEntregaExterno = new DatePicker(this.otForm.find("#ot-fecha-entrega-externo"), option)
|
||||||
@ -78,6 +72,8 @@ class OrdenTrabajo {
|
|||||||
this.ferroOk = new DatePicker(this.otForm.find("#ot-ferro-ok"), option)
|
this.ferroOk = new DatePicker(this.otForm.find("#ot-ferro-ok"), option)
|
||||||
this.plakeneTraslucido = new DatePicker(this.otForm.find("#ot-plakene-traslucido"), option)
|
this.plakeneTraslucido = new DatePicker(this.otForm.find("#ot-plakene-traslucido"), option)
|
||||||
this.impresionColor = new DatePicker(this.otForm.find("#ot-impresion-color"), option)
|
this.impresionColor = new DatePicker(this.otForm.find("#ot-impresion-color"), option)
|
||||||
|
this.impresionBN = new DatePicker(this.otForm.find("#ot-impresion-bn"), option)
|
||||||
|
|
||||||
this.portada = new DatePicker(this.otForm.find("#ot-portada"), option)
|
this.portada = new DatePicker(this.otForm.find("#ot-portada"), option)
|
||||||
this.plastificadoMate = new DatePicker(this.otForm.find("#ot-plastificado-mate"), option)
|
this.plastificadoMate = new DatePicker(this.otForm.find("#ot-plastificado-mate"), option)
|
||||||
this.prepGuillotina = new DatePicker(this.otForm.find("#ot-prep-guillotina"), option)
|
this.prepGuillotina = new DatePicker(this.otForm.find("#ot-prep-guillotina"), option)
|
||||||
@ -85,6 +81,17 @@ class OrdenTrabajo {
|
|||||||
this.embalaje = new DatePicker(this.otForm.find("#ot-embalaje"), option)
|
this.embalaje = new DatePicker(this.otForm.find("#ot-embalaje"), option)
|
||||||
this.envio = new DatePicker(this.otForm.find("#ot-envio"), option)
|
this.envio = new DatePicker(this.otForm.find("#ot-envio"), option)
|
||||||
|
|
||||||
|
//REVISION PREIMPRESION
|
||||||
|
this.preFormatoAt = new DatePicker(this.otForm.find("#ot-preformato-date"), option)
|
||||||
|
this.preLomoAt = new DatePicker(this.otForm.find("#ot-prelomo-date"), option)
|
||||||
|
this.preSolapaAt = new DatePicker(this.otForm.find("#ot-presolapa-date"), option)
|
||||||
|
this.preCodBarrasAt = new DatePicker(this.otForm.find("#ot-precodbarras-date"), option)
|
||||||
|
this.preImposicionAt = new DatePicker(this.otForm.find("#ot-preimposicion-date"), option)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
eventTareas() {
|
eventTareas() {
|
||||||
@ -119,7 +126,7 @@ class OrdenTrabajo {
|
|||||||
this.tareasTableItem.on("xhr.dt", this.unbindEventTareas.bind(this))
|
this.tareasTableItem.on("xhr.dt", this.unbindEventTareas.bind(this))
|
||||||
this.otForm.on("click", "#btn-upload-portada", this.handleUploadPortada.bind(this))
|
this.otForm.on("click", "#btn-upload-portada", this.handleUploadPortada.bind(this))
|
||||||
this.otForm.on("click", "#btn-delete-portada", this.handleDeletePortada.bind(this))
|
this.otForm.on("click", "#btn-delete-portada", this.handleDeletePortada.bind(this))
|
||||||
this.otForm.on("click", "#btn-finalizar-orden-pedido", this.handleFinalizarPedido.bind(this))
|
this.btnFinalizarPedido.on("click", this.handleFinalizarPedido.bind(this))
|
||||||
this.tareasTableItem.on("click", ".ot-tarea-btn-delete", this.handleTareaDeleteConfirmation.bind(this))
|
this.tareasTableItem.on("click", ".ot-tarea-btn-delete", this.handleTareaDeleteConfirmation.bind(this))
|
||||||
this.item.on("click", "#btn-reset-tareas", this.handleResetTareasDeleteConfirmation.bind(this))
|
this.item.on("click", "#btn-reset-tareas", this.handleResetTareasDeleteConfirmation.bind(this))
|
||||||
this.otForm.on("click", ".ot-tarea-comment", this.handleNoteTarea.bind(this))
|
this.otForm.on("click", ".ot-tarea-comment", this.handleNoteTarea.bind(this))
|
||||||
@ -205,7 +212,6 @@ class OrdenTrabajo {
|
|||||||
}
|
}
|
||||||
createSelectMaquinaTarea() {
|
createSelectMaquinaTarea() {
|
||||||
try {
|
try {
|
||||||
console.log("Create selects")
|
|
||||||
this.summaryData.tasks.forEach(element => {
|
this.summaryData.tasks.forEach(element => {
|
||||||
let selectItem = this.item.find("#select-maquina-tarea-" + element.id);
|
let selectItem = this.item.find("#select-maquina-tarea-" + element.id);
|
||||||
if (element.presupuesto_linea_id && element.is_corte == false) this.createSelectMaquinaImpresion(selectItem)
|
if (element.presupuesto_linea_id && element.is_corte == false) this.createSelectMaquinaImpresion(selectItem)
|
||||||
@ -326,6 +332,8 @@ class OrdenTrabajo {
|
|||||||
try {
|
try {
|
||||||
this.summaryData = data
|
this.summaryData = data
|
||||||
this.otForm.off("change", ".ot-date")
|
this.otForm.off("change", ".ot-date")
|
||||||
|
this.otForm.off("change", ".ot-pedido")
|
||||||
|
this.otForm.off("change", ".ot-pedido-check")
|
||||||
this.otForm.off("change", ".ot-preview")
|
this.otForm.off("change", ".ot-preview")
|
||||||
this.fillOtDetails()
|
this.fillOtDetails()
|
||||||
this.fillOtDates()
|
this.fillOtDates()
|
||||||
@ -335,6 +343,8 @@ class OrdenTrabajo {
|
|||||||
|
|
||||||
} finally {
|
} finally {
|
||||||
this.otForm.on("change", ".ot-date", this.handleDateChange.bind(this))
|
this.otForm.on("change", ".ot-date", this.handleDateChange.bind(this))
|
||||||
|
this.otForm.on("change", ".ot-pedido", this.handlePedidoChange.bind(this))
|
||||||
|
this.otForm.on("change", ".ot-pedido-check", this.handlePedidoCheckChange.bind(this))
|
||||||
this.otForm.on("change", ".ot-preview", this.handlePreimpresionReviewChange.bind(this))
|
this.otForm.on("change", ".ot-preview", this.handlePreimpresionReviewChange.bind(this))
|
||||||
Notiflix.Block.remove('.section-block');
|
Notiflix.Block.remove('.section-block');
|
||||||
|
|
||||||
@ -354,28 +364,28 @@ class OrdenTrabajo {
|
|||||||
this.otForm.find("[name=revisar_codigo_barras]").prop("checked", this.summaryData.ot.revisar_codigo_barras)
|
this.otForm.find("[name=revisar_codigo_barras]").prop("checked", this.summaryData.ot.revisar_codigo_barras)
|
||||||
this.otForm.find("[name=realizar_imposicion]").prop("checked", this.summaryData.ot.realizar_imposicion)
|
this.otForm.find("[name=realizar_imposicion]").prop("checked", this.summaryData.ot.realizar_imposicion)
|
||||||
this.otForm.find("[name=enviar_impresion]").prop("checked", this.summaryData.ot.enviar_impresion)
|
this.otForm.find("[name=enviar_impresion]").prop("checked", this.summaryData.ot.enviar_impresion)
|
||||||
|
this.otForm.find("[name=inaplazable]").prop("checked", this.summaryData.pedido.inaplazable)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
fillOtDetails() {
|
fillOtDetails() {
|
||||||
const progreso = this.summaryData.ot.progreso
|
const progreso = this.summaryData.ot.progreso
|
||||||
// this.otForm.find("#ot-progress-bar").attr('aria-valuenow', progreso).text(progreso + "%").css("width", progreso + "%")
|
this.otForm.find("#ot-progress-bar").attr('aria-valuenow', progreso).text(progreso + "%").css("width", progreso + "%")
|
||||||
// this.otForm.find("#ot-paginas").text(this.summaryData.presupuesto.paginas)
|
|
||||||
// this.otForm.find("#ot-tirada").text(this.summaryData.presupuesto.tirada)
|
|
||||||
// this.otForm.find("#ot-merma").text(this.summaryData.presupuesto.merma)
|
|
||||||
}
|
}
|
||||||
fillOtDates() {
|
fillOtDates() {
|
||||||
this.fechaImpresion.setDate(this.summaryData.dates.fecha_impresion_at)
|
this.fechaImpresion.setDate(this.summaryData.pedido.fecha_impresion)
|
||||||
this.fechaEncuadernado.setDate(this.summaryData.dates.fecha_encuadernado_at)
|
this.fechaEncuadernado.setDate(this.summaryData.pedido.fecha_encuadernado)
|
||||||
// this.fechaEntregaExterno.setDate(this.summaryData.dates.fecha_entrega_externo_)
|
this.fechaEntregaExterno.setDate(this.summaryData.pedido.fecha_entrega_externo)
|
||||||
this.fechaEntregaReal.setDate(this.summaryData.dates.fecha_entrega_real_at)
|
this.fechaEntregaReal.setDate(this.summaryData.pedido.fecha_entrega_real)
|
||||||
this.fechaEntregaEstimada.setDate(this.summaryData.dates.fecha_entrega_at)
|
// this.fechaEntregaEstimada.setDate(this.summaryData.pedido.fecha_entrega_at)
|
||||||
|
|
||||||
this.pendienteFerro.setDate(this.summaryData.dates.pendiente_ferro_at)
|
this.pendienteFerro.setDate(this.summaryData.dates.pendiente_ferro_at)
|
||||||
this.ferroCliente.setDate(this.summaryData.dates.ferro_en_cliente_at)
|
this.ferroCliente.setDate(this.summaryData.dates.ferro_en_cliente_at)
|
||||||
this.ferroOk.setDate(this.summaryData.dates.ferro_ok_at)
|
this.ferroOk.setDate(this.summaryData.dates.ferro_ok_at)
|
||||||
// this.plakeneTraslucido.setDate(this.summaryData.dates.fecha_impresion_at)
|
// this.plakeneTraslucido.setDate(this.summaryData.dates.fecha_impresion_at)
|
||||||
this.impresionColor.setDate(this.summaryData.dates.interior_color_at)
|
this.impresionColor.setDate(this.summaryData.dates.interior_color_at)
|
||||||
|
this.impresionBN.setDate(this.summaryData.dates.interior_bn_at)
|
||||||
this.portada.setDate(this.summaryData.dates.cubierta_at)
|
this.portada.setDate(this.summaryData.dates.cubierta_at)
|
||||||
this.plastificadoMate.setDate(this.summaryData.dates.plastificado_at)
|
this.plastificadoMate.setDate(this.summaryData.dates.plastificado_at)
|
||||||
this.prepGuillotina.setDate(this.summaryData.dates.corte_at)
|
this.prepGuillotina.setDate(this.summaryData.dates.corte_at)
|
||||||
@ -383,12 +393,19 @@ class OrdenTrabajo {
|
|||||||
this.embalaje.setDate(this.summaryData.dates.embalaje_at)
|
this.embalaje.setDate(this.summaryData.dates.embalaje_at)
|
||||||
this.envio.setDate(this.summaryData.dates.envio_at)
|
this.envio.setDate(this.summaryData.dates.envio_at)
|
||||||
this.pedidoEnEsperaCheck.prop("checked", this.summaryData.ot.is_pedido_espera);
|
this.pedidoEnEsperaCheck.prop("checked", this.summaryData.ot.is_pedido_espera);
|
||||||
|
this.tiempoProcesamiento.val(this.summaryData.tiempo_procesamiento);
|
||||||
if (this.summaryData.ot.pedido_espera_by) {
|
if (this.summaryData.ot.pedido_espera_by) {
|
||||||
this.pedidoEnEsperaBy.text([this.summaryData.ot.pedido_espera_by.first_name, this.summaryData.ot.pedido_espera_by.last_name].join(" "))
|
this.pedidoEnEsperaBy.text([this.summaryData.ot.pedido_espera_by.first_name, this.summaryData.ot.pedido_espera_by.last_name].join(" "))
|
||||||
} else {
|
} else {
|
||||||
this.pedidoEnEsperaBy.text("");
|
this.pedidoEnEsperaBy.text("");
|
||||||
}
|
}
|
||||||
this.otEstado.val(this.summaryData.ot.estado)
|
this.otEstado.val(this.summaryData.ot.estado)
|
||||||
|
this.preFormatoAt.setDate(this.summaryData.dates.pre_formato_at)
|
||||||
|
this.preLomoAt.setDate(this.summaryData.dates.pre_lomo_at)
|
||||||
|
this.preSolapaAt.setDate(this.summaryData.dates.pre_solapa_at)
|
||||||
|
this.preCodBarrasAt.setDate(this.summaryData.dates.pre_codbarras_at)
|
||||||
|
this.preImposicionAt.setDate(this.summaryData.dates.pre_imposicion_at)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -398,7 +415,6 @@ class OrdenTrabajo {
|
|||||||
const data = {}
|
const data = {}
|
||||||
data[key] = $(event.currentTarget).val()
|
data[key] = $(event.currentTarget).val()
|
||||||
data["orden_trabajo_tarea_id"] = $(event.currentTarget).data("id")
|
data["orden_trabajo_tarea_id"] = $(event.currentTarget).data("id")
|
||||||
console.log(data);
|
|
||||||
const ajax = new Ajax(
|
const ajax = new Ajax(
|
||||||
"/produccion/ordentrabajo/update/tarea",
|
"/produccion/ordentrabajo/update/tarea",
|
||||||
data,
|
data,
|
||||||
@ -428,7 +444,6 @@ class OrdenTrabajo {
|
|||||||
}
|
}
|
||||||
handleTareaChangeError(error) { }
|
handleTareaChangeError(error) { }
|
||||||
handleOtComment(event) {
|
handleOtComment(event) {
|
||||||
console.log($(event.currentTarget).val())
|
|
||||||
const ajax = new Ajax(
|
const ajax = new Ajax(
|
||||||
"/produccion/ordentrabajo/update",
|
"/produccion/ordentrabajo/update",
|
||||||
{
|
{
|
||||||
@ -454,7 +469,6 @@ class OrdenTrabajo {
|
|||||||
data[key] = $(event.currentTarget).val()
|
data[key] = $(event.currentTarget).val()
|
||||||
data["orden_trabajo_id"] = this.modelId
|
data["orden_trabajo_id"] = this.modelId
|
||||||
data["name"] = key;
|
data["name"] = key;
|
||||||
console.log(data)
|
|
||||||
const ajax = new Ajax(
|
const ajax = new Ajax(
|
||||||
"/produccion/ordentrabajo/update/date",
|
"/produccion/ordentrabajo/update/date",
|
||||||
data,
|
data,
|
||||||
@ -475,6 +489,36 @@ class OrdenTrabajo {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
handleDateChangeError(errors) { }
|
handleDateChangeError(errors) { }
|
||||||
|
handlePedidoChange(event) {
|
||||||
|
const key = $(event.currentTarget).attr("name")
|
||||||
|
const data = {}
|
||||||
|
const element = $(event.currentTarget);
|
||||||
|
data[key] = $(event.currentTarget).val()
|
||||||
|
data["orden_trabajo_id"] = this.modelId
|
||||||
|
data["name"] = key;
|
||||||
|
const ajax = new Ajax(
|
||||||
|
"/produccion/ordentrabajo/update/pedido/date",
|
||||||
|
data,
|
||||||
|
null,
|
||||||
|
this.handleDateChangeSuccess.bind(this, element),
|
||||||
|
this.handleDateChangeError.bind(this)
|
||||||
|
)
|
||||||
|
ajax.post();
|
||||||
|
}
|
||||||
|
handlePedidoCheckChange(event) {
|
||||||
|
const key = $(event.currentTarget).attr("name")
|
||||||
|
const data = {}
|
||||||
|
data[key] = $(event.currentTarget).is(":checked") ? 1 : 0
|
||||||
|
data["orden_trabajo_id"] = this.modelId
|
||||||
|
const ajax = new Ajax(
|
||||||
|
"/produccion/ordentrabajo/update/pedido",
|
||||||
|
data,
|
||||||
|
null,
|
||||||
|
this.handlePreimpresionReviewChangeSuccess.bind(this),
|
||||||
|
this.handlePreimpresionReviewChangeError.bind(this)
|
||||||
|
)
|
||||||
|
ajax.post();
|
||||||
|
}
|
||||||
handlePreimpresionReviewChange(event) {
|
handlePreimpresionReviewChange(event) {
|
||||||
const key = $(event.currentTarget).attr("name")
|
const key = $(event.currentTarget).attr("name")
|
||||||
const data = {}
|
const data = {}
|
||||||
@ -583,7 +627,12 @@ class OrdenTrabajo {
|
|||||||
this.handleEstadoChangeSuccess.bind(this),
|
this.handleEstadoChangeSuccess.bind(this),
|
||||||
this.handleEstadoChangeError.bind(this)
|
this.handleEstadoChangeError.bind(this)
|
||||||
);
|
);
|
||||||
ajax.post()
|
alertConfirmAction("Esta acción marcará la orden de trabjao como FINALIZADA")
|
||||||
|
.then(result => {
|
||||||
|
if (result.isConfirmed) {
|
||||||
|
ajax.post()
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
handleEstadoChangeSuccess(response) {
|
handleEstadoChangeSuccess(response) {
|
||||||
popSuccessAlert(response.message)
|
popSuccessAlert(response.message)
|
||||||
|
|||||||
@ -35,11 +35,12 @@ body{
|
|||||||
border: 2px solid;
|
border: 2px solid;
|
||||||
}
|
}
|
||||||
.square{
|
.square{
|
||||||
font-size: 14px;
|
|
||||||
align-items: center;
|
align-items: center;
|
||||||
align-content : center;
|
align-content : center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
|
font-size : 20px;
|
||||||
|
|
||||||
}
|
}
|
||||||
.esquema{
|
.esquema{
|
||||||
display: flex;
|
display: flex;
|
||||||
@ -126,18 +127,24 @@ body{
|
|||||||
|
|
||||||
table {
|
table {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
border-collapse: collapse;
|
|
||||||
margin-bottom: 5px;
|
margin-bottom: 5px;
|
||||||
font-size: 12px;
|
font-size: 10px;
|
||||||
}
|
}
|
||||||
table th, table td {
|
|
||||||
border: 2px solid #000000;
|
table td {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
table,th,td{
|
||||||
|
border: 0.1px solid rgb(0, 0, 0);
|
||||||
|
border-collapse: collapse;
|
||||||
|
}
|
||||||
|
|
||||||
table th {
|
table th {
|
||||||
background-color: #f4f4f4;
|
background-color: #f4f4f4;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
color : black;
|
color : black;
|
||||||
|
text-align: center;
|
||||||
|
|
||||||
}
|
}
|
||||||
table td{
|
table td{
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
@ -158,6 +165,23 @@ table td{
|
|||||||
padding-left: 0.2rem;
|
padding-left: 0.2rem;
|
||||||
}
|
}
|
||||||
.t-row{
|
.t-row{
|
||||||
font-size: 10px;
|
font-size: 8px;
|
||||||
width : 100%;
|
width : 100%;
|
||||||
}
|
}
|
||||||
|
.bicolor{
|
||||||
|
background: linear-gradient( to right, #00b5fc 0%, #00b5fc 45%, #000000 55%, #000000 100%);
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
.cmyk{
|
||||||
|
background-image: url('/themes/vuexy/img/safekat/presupuestos/cmyk.png')
|
||||||
|
background-size: 110px;
|
||||||
|
text-shadow: 0px 0px 1px black;
|
||||||
|
stroke:black;
|
||||||
|
}
|
||||||
|
.bn{
|
||||||
|
background : black;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
.footer{
|
||||||
|
font-size : 10px
|
||||||
|
}
|
||||||
BIN
httpdocs/themes/vuexy/img/safekat/presupuestos/cmyk.png
Normal file
BIN
httpdocs/themes/vuexy/img/safekat/presupuestos/cmyk.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.0 KiB |
Reference in New Issue
Block a user