mirror of
https://git.imnavajas.es/jjimenez/safekat.git
synced 2025-07-25 22:52:08 +00:00
modificacion hecha
This commit is contained in:
@ -168,8 +168,8 @@ class Maquinas extends \App\Controllers\GoBaseResourceController
|
||||
if ($this->request->getPost('is_rotativa') == null) {
|
||||
$sanitizedData['is_rotativa'] = false;
|
||||
}
|
||||
if ($this->request->getPost('is_tinta') == null) {
|
||||
$sanitizedData['is_tinta'] = false;
|
||||
if ($this->request->getPost('is_inkjet') == null) {
|
||||
$sanitizedData['is_inkjet'] = false;
|
||||
}
|
||||
|
||||
// JJO
|
||||
|
||||
@ -164,6 +164,7 @@ class Maquinaspapelesimpresion extends \App\Controllers\GoBaseResourceController
|
||||
$maquina_id = $reqData['maquina_id'] ?? -1;
|
||||
// Para saber si el papel que se tiene que mostrar es para rotativa
|
||||
$isRotativa= $reqData['isRotativa'] ?? 0;
|
||||
$isInkjet= $reqData['isInkjet'] ?? 0;
|
||||
|
||||
// modelos usados
|
||||
$tarifa_model = new MaquinasTarifasImpresionModel();
|
||||
@ -172,13 +173,13 @@ class Maquinaspapelesimpresion extends \App\Controllers\GoBaseResourceController
|
||||
$tarifas = $tarifa_model->getResource("", $maquina_id)->get()->getResultObject();
|
||||
|
||||
// 1- Se obtienen los papeles que hay seleccionados (de la tabla lg_maquina_papel_impresion y que coincidan con las tarifas actuales)
|
||||
$initData = $this->model->getInitData($isRotativa, $tarifas, $maquina_id);
|
||||
$initData = $this->model->getInitData($isRotativa, $isInkjet, $tarifas, $maquina_id);
|
||||
// 2- Se cuentan los resultados. Si no hay coincidencias, hay que crear la tabla pivote con todos los papeles que cumplan la
|
||||
// condición de las tarifas y con la columna active a 0. Si hay coincidencias, se guardan los activos en un array
|
||||
$selected_papers = $initData->countAllResults();
|
||||
$active_values = [];
|
||||
if($selected_papers > 0){
|
||||
$active_values = $this->model->getInitData($isRotativa, $tarifas, $maquina_id)->get()->getResult('array');
|
||||
$active_values = $this->model->getInitData($isRotativa, $isInkjet, $tarifas, $maquina_id)->get()->getResult('array');
|
||||
}
|
||||
// Primero se borran las filas con la maquina_id de la tabla pivote
|
||||
$this->model->deleteRows($maquina_id);
|
||||
|
||||
@ -205,10 +205,13 @@ class Papelesimpresion extends \App\Controllers\GoBaseResourceController
|
||||
if ($this->request->getPost('rotativa') == null) {
|
||||
$sanitizedData['rotativa'] = false;
|
||||
}
|
||||
if ($this->request->getPost('inkjet') == null) {
|
||||
$sanitizedData['inkjet'] = false;
|
||||
}
|
||||
|
||||
// Hay que asegurarse de que se quitan los consumos de tintas de rotativa
|
||||
// en caso de que se haya deseleccionado la opción rotativa
|
||||
if(!$sanitizedData['rotativa']){
|
||||
if(!$sanitizedData['rotativa'] && !$sanitizedData['inkjet']){
|
||||
$this->tpModel->removeForPapelImpresion($id);
|
||||
}
|
||||
|
||||
@ -221,8 +224,7 @@ class Papelesimpresion extends \App\Controllers\GoBaseResourceController
|
||||
$noException = true;
|
||||
if ($successfulResult = $this->canValidate()) : // if ($successfulResult = $this->validate($this->formValidationRules) ) :
|
||||
|
||||
|
||||
|
||||
|
||||
if ($this->canValidate()) :
|
||||
try {
|
||||
$successfulResult = $this->model->skipValidation(true)->update($id, $sanitizedData);
|
||||
@ -415,12 +417,12 @@ class Papelesimpresion extends \App\Controllers\GoBaseResourceController
|
||||
$ma_model = new MaquinaModel();
|
||||
$ma_pa_model = new MaquinasPapelesImpresionModel();
|
||||
|
||||
$active_values = $ma_pa_model->getInitSelectedMachines($id, $data['rotativa'])->get()->getResult('array');
|
||||
$active_values = $ma_pa_model->getInitSelectedMachines($id, $data['rotativa'], $data['inkjet'])->get()->getResult('array');
|
||||
|
||||
$ma_pa_model->deleteForPapelImpresion($id);
|
||||
|
||||
// Se obtienen las máquinas que cumplen las condiciones
|
||||
$rows = $ma_model->getIdMaquinasForPapelImpresion($id, $data['rotativa'])->get()->getResult('array');
|
||||
$rows = $ma_model->getIdMaquinasForPapelImpresion($id, $data['rotativa'], $data['inkjet'])->get()->getResult('array');
|
||||
$ma_pa_model->insertRows($rows);
|
||||
|
||||
// Se actualizan los activos que había en caso de que los hubiera
|
||||
|
||||
@ -444,7 +444,21 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
|
||||
|
||||
if ($type=='interior') {
|
||||
|
||||
$resourceData = $this->getCompIntData($type, $datosPedido, $papel_generico, $gramaje, $isColor, $isHq, $cliente_id);
|
||||
$datosTipolog = $reqData['negro'] ?? null;
|
||||
if(!is_null($datosTipolog)){
|
||||
$datosTipolog = [];
|
||||
$data = (object)array(
|
||||
'negro' => intval($reqData['negro']) ?? 0,
|
||||
'cyan' => intval($reqData['cyan']) ?? 0,
|
||||
'magenta' => intval($reqData['magenta']) ?? 0,
|
||||
'amarillo' => intval($reqData['amarillo']) ?? 0,
|
||||
'gota_negro' => intval($reqData['gota_negro']) ?? 0,
|
||||
'gota_color' => intval($reqData['gota_color']) ?? 0,
|
||||
);
|
||||
array_push($datosTipolog, $data);
|
||||
}
|
||||
|
||||
$resourceData = $this->getCompIntData($type, $datosPedido, $papel_generico, $gramaje, $isColor, $isHq, $cliente_id, $datosTipolog);
|
||||
|
||||
$newTokenHash = csrf_hash();
|
||||
$csrfTokenName = csrf_token();
|
||||
@ -560,7 +574,7 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
|
||||
}
|
||||
|
||||
|
||||
public function getCompIntData($uso, $datosPedido, $papel_generico, $gramaje, $isColor, $isHq, $cliente_id)
|
||||
public function getCompIntData($uso, $datosPedido, $papel_generico, $gramaje, $isColor, $isHq, $cliente_id, $datosTipolog = null)
|
||||
{
|
||||
$tipo = $isColor? ($isHq?'colorhq':'color'): ($isHq?'negrohq':'negro');
|
||||
|
||||
@ -615,15 +629,61 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
|
||||
// Se recorren las máquinas y se calcula el coste de linea por cada una
|
||||
foreach ($maquinas as $maquina) {
|
||||
|
||||
if($maquina->is_inkjet){
|
||||
$parametrosInkjet = (object)array(
|
||||
'a_favor_fibra' => 1, // este parametro se cambia para comprobar
|
||||
// en las dos direcciones (menos en rustica fresada que es siempre 1)
|
||||
'bnPages' => $isColor?0:$datosPedido->paginas,
|
||||
'colorPages' => $isColor?$datosPedido->paginas:0,
|
||||
'rotativa_gota_negro' => 0,
|
||||
'rotativa_gota_color' => 0,
|
||||
);
|
||||
|
||||
$papelImpresionTipologiaModel = new \App\Models\Configuracion\PapelImpresionTipologiaModel();
|
||||
if(is_null($datosTipolog)){
|
||||
$datosTipologias = $papelImpresionTipologiaModel
|
||||
->findTipologiasForPapelImpresion($papel->id, $parametrosInkjet->colorPages>0?'color':'negro')
|
||||
->get()->getResultObject();
|
||||
|
||||
|
||||
if(count($datosTipologias)==0){
|
||||
continue;
|
||||
}
|
||||
}
|
||||
else{
|
||||
$datosTipologias = $datosTipolog;
|
||||
}
|
||||
|
||||
$parametrosInkjet->rotativa_gota_negro = $datosTipologias[0]->gota_negro;
|
||||
$parametrosInkjet->rotativa_gota_color = $datosTipologias[0]->gota_color;
|
||||
$parametrosInkjet->rotativa_negro = $datosTipologias[0]->negro;
|
||||
$parametrosInkjet->rotativa_cyan = $datosTipologias[0]->cyan;
|
||||
$parametrosInkjet->rotativa_magenta = $datosTipologias[0]->magenta;
|
||||
$parametrosInkjet->rotativa_amarillo = $datosTipologias[0]->amarillo;
|
||||
}
|
||||
|
||||
$tarifamodel = new MaquinasTarifasImpresionModel();
|
||||
[$tarifaId, $tarifa] = $tarifamodel->getTarifa($maquina->maquina_id, $uso, $tipo);
|
||||
if(!is_float($tarifa)){
|
||||
continue;
|
||||
}
|
||||
|
||||
$linea = PresupuestoService::getCostesLinea($uso, $datosPedido, $maquina, $papel, $opciones_papel, $tarifa);
|
||||
if($maquina->is_inkjet){
|
||||
$linea['fields'] = PresupuestoService::getCostesLineaRotativa($maquina, $papel, $datosPedido, $parametrosInkjet);
|
||||
[$precio_pliego_impresion, $margen_pliego_impresion] = PresupuestoService::getPrecioPliego($maquina, $papel, $datosPedido->paginas);
|
||||
$linea['fields']['precios_pliegos'] = $precio_pliego_impresion;
|
||||
$linea['fields']['precio_libro'] = $linea['fields']['pliegos_libro'] * $precio_pliego_impresion;
|
||||
$linea['fields']['a_favor_fibra'] = $parametrosInkjet->a_favor_fibra;
|
||||
$linea['fields']['paginas_color'] = $isColor?$datosPedido->paginas:0;
|
||||
$linea['fields']['datosTipologias'] = $datosTipologias[0];
|
||||
}
|
||||
else{
|
||||
$linea = PresupuestoService::getCostesLinea($uso, $datosPedido, $maquina, $papel, $opciones_papel, $tarifa);
|
||||
}
|
||||
|
||||
if(array_key_exists('error', $linea))
|
||||
continue;
|
||||
|
||||
$linea['fields']['tarifa_impresion_id'] = $tarifaId;
|
||||
$linea['fields']['maquina'] = $maquina->maquina;
|
||||
$linea['fields']['maquina_id'] = $maquina->maquina_id;
|
||||
@ -634,6 +694,11 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
|
||||
$linea['fields']['gramaje'] = $gramaje;
|
||||
$linea['fields']['papel_generico_id'] = $papel_generico['id'];
|
||||
$linea['fields']['papel_generico'] = $papel_generico['nombre'];
|
||||
|
||||
if($maquina->is_inkjet){
|
||||
$linea['fields']['precio_click'] = $tarifa;
|
||||
$linea['fields']['precio_click_pedido'] = $linea['fields']['clicks_pedido'] * $linea['fields']['precio_click'];
|
||||
}
|
||||
$linea['fields']['tiempo_maquina'] = PresupuestoService::getTiempoMaquina(
|
||||
$linea['fields']['precio_click_pedido'],
|
||||
$linea['fields']['precio_click'],
|
||||
@ -642,7 +707,7 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
|
||||
$clientePreciosModel = new ClientePreciosModel();
|
||||
$config = (object)[
|
||||
"tipo" => $uso,
|
||||
"tipo_maquina" => $maquina->is_tinta?'inkjet':'toner',
|
||||
"tipo_maquina" => $maquina->is_inkjet?'inkjet':'toner',
|
||||
"tipo_impresion" => $tipo
|
||||
];
|
||||
$tiempo = PresupuestoService::getHorasMaquina(
|
||||
@ -655,15 +720,27 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
|
||||
continue;
|
||||
}
|
||||
|
||||
$linea['fields']['tipo_maquina'] = $maquina->is_tinta?'inkjet':'toner';
|
||||
$linea['fields']['tipo_maquina'] = $maquina->is_inkjet?'inkjet':'toner';
|
||||
$linea['fields']['precio_hora'] = $precio_hora*$margen_precio_hora/100.0;
|
||||
$linea['fields']['precio_hora_margen'] = $margen_precio_hora;
|
||||
$linea['fields']['horas_maquina'] = $tiempo;
|
||||
$linea['fields']['precio_impresion_horas'] = $precio_hora*$tiempo*1.0;
|
||||
$linea['fields']['margen_impresion_horas'] = $precio_hora*$tiempo*1.0*$margen_precio_hora/100.0;
|
||||
|
||||
$linea['fields']['total_impresion'] = $linea['fields']['precio_pedido'] + // papel
|
||||
$linea['fields']['precio_impresion_horas']; // impresion
|
||||
if($maquina->is_inkjet){
|
||||
$linea['fields']['precio_pedido'] = $linea['fields']['precio_libro'] * ($datosPedido->tirada + $datosPedido->merma);
|
||||
$linea['fields']['margen_papel_pedido'] = $linea['fields']['pliegos_libro']*$margen_pliego_impresion* ($datosPedido->tirada + $datosPedido->merma); ;
|
||||
$linea['fields']['total_impresion'] =
|
||||
$linea['fields']['precio_pedido'] + // papel
|
||||
$linea['fields']['precio_impresion_horas'] + $linea['fields']['margen_impresion_horas'] + // horas de maquina
|
||||
$linea['fields']['precio_tinta']; // tinta
|
||||
}
|
||||
else{
|
||||
$linea['fields']['total_impresion'] = $linea['fields']['precio_pedido'] + // papel
|
||||
$linea['fields']['precio_impresion_horas']; // impresion
|
||||
}
|
||||
|
||||
|
||||
|
||||
array_push($lineas, $linea);
|
||||
}
|
||||
|
||||
@ -18,8 +18,20 @@ class Test extends BaseController
|
||||
public function index()
|
||||
{
|
||||
|
||||
$this->asignar_tarifa_defecto_todos_usuarios();
|
||||
$maquina_id = 114;
|
||||
|
||||
echo '<pre>';
|
||||
$papelimpresion_model = model('App\Models\Configuracion\PapelImpresionModel');
|
||||
$tarifa_model = model('App\Models\Configuracion\MaquinasTarifasImpresionModel');
|
||||
|
||||
$tarifas = $tarifa_model->getResource("", $maquina_id)->get()->getResultObject();
|
||||
var_dump($tarifas);
|
||||
|
||||
$papeles = $papelimpresion_model->getIdPapelesImpresion($maquina_id, $tarifas)->get()->getResult('array');
|
||||
|
||||
var_dump($papeles);
|
||||
|
||||
echo '</pre>';
|
||||
}
|
||||
|
||||
private function asignar_tarifa_defecto_todos_usuarios()
|
||||
|
||||
Reference in New Issue
Block a user