mirror of
https://git.imnavajas.es/jjimenez/safekat.git
synced 2025-07-25 22:52:08 +00:00
realizado el calculo por horas e introducido en el comparador
This commit is contained in:
@ -63,6 +63,9 @@ class ClientePrecios extends \App\Controllers\GoBaseResourceController
|
||||
if($plantilla_id == -1){
|
||||
$this->model->clean_plantilla_id($requestedId);
|
||||
}
|
||||
else if($requestedId== -1){ // actualizar todos los clientes que usan una plantilla
|
||||
$this->model->update_from_plantilla($plantilla_id);
|
||||
}
|
||||
else{
|
||||
$this->model->copy_from_plantilla($requestedId, $plantilla_id);
|
||||
}
|
||||
|
||||
@ -249,7 +249,7 @@ class Maquinastarifasimpresion extends \App\Controllers\GoBaseResourceController
|
||||
// Si no se quiere borrar...
|
||||
if ($data['data'][$pkey]['is_deleted'] != 1) {
|
||||
// Cubierta y sobrecubierta sólo pueden ser en color
|
||||
if ($values['uso'] != 'interior' && $values['tipo'] != 'color') {
|
||||
if ($values['uso'] != 'interior' && $values['tipo'] != 'colorhq') {
|
||||
return lang('MaquinasTarifasImpresions.validation.cubierta_sobrecubierta_color');
|
||||
}
|
||||
|
||||
|
||||
@ -21,6 +21,7 @@ use App\Services\PresupuestoService;
|
||||
use App\Models\Configuracion\PapelImpresionModel;
|
||||
use App\Models\Configuracion\MaquinaModel;
|
||||
use App\Models\Configuracion\MaquinasTarifasImpresionModel;
|
||||
use App\Models\Clientes\ClientePreciosModel;
|
||||
use Exception;
|
||||
|
||||
class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
|
||||
@ -432,12 +433,14 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
|
||||
];
|
||||
|
||||
$gramaje = $reqData['gramaje'] ?? 0;
|
||||
|
||||
$cliente_id = $reqData['cliente_id'] ?? -1;
|
||||
|
||||
|
||||
|
||||
if ($type=='interior') {
|
||||
|
||||
$resourceData = $this->getCompIntData($type, $datosPedido, $papel_generico, $gramaje, $isColor, $isHq);
|
||||
$resourceData = $this->getCompIntData($type, $datosPedido, $papel_generico, $gramaje, $isColor, $isHq, $cliente_id);
|
||||
|
||||
$newTokenHash = csrf_hash();
|
||||
$csrfTokenName = csrf_token();
|
||||
@ -469,7 +472,7 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
|
||||
array_push($datosTipolog, $data);
|
||||
}
|
||||
|
||||
$resourceData = $this->getCompIntRotData($datosPedido, $papel_generico, $gramaje, $paginas, $datosTipolog);
|
||||
$resourceData = $this->getCompIntRotData($datosPedido, $papel_generico, $gramaje, $paginas, $cliente_id, $datosTipolog);
|
||||
|
||||
$newTokenHash = csrf_hash();
|
||||
$csrfTokenName = csrf_token();
|
||||
@ -480,12 +483,13 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
|
||||
|
||||
return $this->respond($data);
|
||||
}
|
||||
else if ($type=='cubierta') {
|
||||
else if ($type=='cubierta' || $type=='sobrecubierta') {
|
||||
|
||||
$datosPedido->solapas = $reqData['solapas'];
|
||||
$datosPedido->solapas_ancho = $reqData['solapas_ancho'];
|
||||
|
||||
$resourceData = $this->getCompIntData($type, $datosPedido, $papel_generico, $gramaje, $isColor, $isHq);
|
||||
// Cubierta y sobrecubierta siempre color HQ
|
||||
$resourceData = $this->getCompIntData($type, $datosPedido, $papel_generico, $gramaje, $isColor, 1, $cliente_id);
|
||||
|
||||
$newTokenHash = csrf_hash();
|
||||
$csrfTokenName = csrf_token();
|
||||
@ -523,11 +527,6 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
|
||||
$datos = $reqData['datos'] ?? null;
|
||||
$presupuesto_id = $reqData['presupuesto_id'] ?? -1;
|
||||
|
||||
/*foreach($datos as $key=>$linea){
|
||||
$datos[$key]['papel_id'] = $datos[$key]['papel_id'] ?? -1;
|
||||
}*/
|
||||
|
||||
|
||||
if($datos != null){
|
||||
$this->updateLineasPresupuestoActivas($presupuesto_id, $datos);
|
||||
}
|
||||
@ -554,7 +553,7 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
|
||||
}
|
||||
|
||||
|
||||
public function getCompIntData($uso, $datosPedido, $papel_generico, $gramaje, $isColor, $isHq)
|
||||
public function getCompIntData($uso, $datosPedido, $papel_generico, $gramaje, $isColor, $isHq, $cliente_id)
|
||||
{
|
||||
$tipo = $isColor? ($isHq?'colorhq':'color'): ($isHq?'negrohq':'negro');
|
||||
|
||||
@ -584,8 +583,6 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
|
||||
'rotativa' => 0,
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Se obtienen los papeles disponibles
|
||||
$papelimpresionmodel = new PapelImpresionModel();
|
||||
@ -616,6 +613,7 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
|
||||
if(!is_float($tarifa)){
|
||||
continue;
|
||||
}
|
||||
|
||||
$linea = PresupuestoService::getCostesLinea($uso, $datosPedido, $maquina, $papel, $opciones_papel, $tarifa);
|
||||
if(array_key_exists('error', $linea))
|
||||
continue;
|
||||
@ -634,13 +632,35 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
|
||||
$linea['fields']['precio_click'],
|
||||
$maquina->velocidad);
|
||||
|
||||
$clientePreciosModel = new ClientePreciosModel();
|
||||
$config = (object)[
|
||||
"tipo" => $uso,
|
||||
"tipo_maquina" => $maquina->is_tinta?'inkjet':'toner',
|
||||
"tipo_impresion" => $tipo
|
||||
];
|
||||
$tiempo = PresupuestoService::getHorasMaquina(
|
||||
$linea['fields']['precio_click_pedido'],
|
||||
$linea['fields']['precio_click'],
|
||||
$maquina->velocidad);
|
||||
[$precio_hora, $margen_precio_hora] = $clientePreciosModel->get_precio_hora($cliente_id, $config, $tiempo);
|
||||
|
||||
if(is_null($precio_hora)){
|
||||
continue;
|
||||
}
|
||||
|
||||
$linea['fields']['precio_hora'] = $precio_hora;
|
||||
$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;
|
||||
|
||||
array_push($lineas, $linea);
|
||||
}
|
||||
}
|
||||
return $lineas;
|
||||
}
|
||||
|
||||
public function getCompIntRotData($datosPedido, $papel_generico, $gramaje, $paginas, $datosTipolog = null)
|
||||
public function getCompIntRotData($datosPedido, $papel_generico, $gramaje, $paginas, $cliente_id, $datosTipolog = null)
|
||||
{
|
||||
|
||||
$uso = 'interior';
|
||||
@ -771,9 +791,37 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
|
||||
$linea['fields']['precio_click'],
|
||||
$maquina->velocidad);
|
||||
|
||||
|
||||
$clientePreciosModel = new ClientePreciosModel();
|
||||
$config = (object)[
|
||||
"tipo" => $uso,
|
||||
"tipo_maquina" => 'inkjet',
|
||||
"tipo_impresion" => $tipo
|
||||
];
|
||||
$tiempo = PresupuestoService::getHorasMaquina(
|
||||
$linea['fields']['precio_click_pedido'],
|
||||
$linea['fields']['precio_click'],
|
||||
$maquina->velocidad);
|
||||
[$precio_hora, $margen_precio_hora] = $clientePreciosModel->get_precio_hora($cliente_id, $config, $tiempo);
|
||||
|
||||
if(is_null($precio_hora)){
|
||||
continue;
|
||||
}
|
||||
|
||||
$linea['fields']['precio_hora'] = $precio_hora;
|
||||
$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;
|
||||
|
||||
// total linea rotativa
|
||||
$linea['fields']['total_impresion'] = $linea['fields']['precio_pedido'] + $linea['fields']['precio_click_pedido'] + $linea['fields']['precio_tinta'] +
|
||||
$linea['fields']['total_corte'];
|
||||
//$linea['fields']['total_impresion'] = $linea['fields']['precio_pedido'] + $linea['fields']['precio_click_pedido'] + $linea['fields']['precio_tinta'] +
|
||||
// $linea['fields']['total_corte'];
|
||||
$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
|
||||
$linea['fields']['total_corte']; // corte
|
||||
|
||||
array_push($lineas, $linea);
|
||||
}
|
||||
|
||||
@ -17,11 +17,20 @@ class Test extends BaseController
|
||||
|
||||
public function index()
|
||||
{
|
||||
|
||||
$model = model('App\Models\Clientes\ClientePreciosModel') ;
|
||||
echo '<pre>';
|
||||
$model = model('App\Models\Configuracion\TipoPresupuestoModel');
|
||||
var_dump($model->get_isCosido(25));
|
||||
var_dump($model->update_from_plantilla(5));
|
||||
echo '</pre>';
|
||||
/*
|
||||
echo '<pre>';
|
||||
$model = model('App\Models\Clientes\ClientePreciosModel');
|
||||
$configuracion = (object)[
|
||||
'tipo' => 'interior',
|
||||
'tipo_maquina' => 'inkjet',
|
||||
'tipo_impresion' => 'color'
|
||||
];
|
||||
var_dump($model->get_precio_hora(999,$configuracion, 1.5));
|
||||
echo '</pre>';*/
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user