mirror of
https://git.imnavajas.es/jjimenez/safekat.git
synced 2025-07-25 22:52:08 +00:00
obteniendo presupuesto cliente rotativa
This commit is contained in:
@ -604,6 +604,127 @@ class Presupuestocliente extends \App\Controllers\GoBaseResourceController
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public function presupuesto()
|
||||
{
|
||||
$POD = model('App\Models\Configuracion\ConfiguracionSistemaModel')->getPOD();
|
||||
|
||||
if ($this->request->isAJAX()) {
|
||||
$reqData = $this->request->getPost();
|
||||
|
||||
$tirada = $reqData['tirada'] ?? 0;
|
||||
$tamanio = $reqData['tamanio'];
|
||||
$tipo_impresion_id = $this->getTipoImpresion($reqData['tipo'], $reqData['tapa']);
|
||||
$paginas_color= intval($reqData['paginasColor']) ?? 0;
|
||||
|
||||
$datosPedido = (object)array(
|
||||
'paginas' => intval($reqData['paginas']) ?? 0,
|
||||
'tirada' => $tirada[0],
|
||||
'merma' => $tirada[0]>$POD ? $this->calcular_merma($tirada[0], $POD) : 0,
|
||||
'ancho' => intval($tamanio['ancho']) ?? 100000,
|
||||
'alto' => intval($tamanio['alto']) ?? 100000,
|
||||
#'a_favor_fibra' => $reqData['a_favor_fibra'] ?? 1,
|
||||
'isCosido' => (new TipoPresupuestoModel())->get_isCosido($tipo_impresion_id), // JJO esto es custom por cada tipo de presupuesto
|
||||
);
|
||||
|
||||
$papel_generico = [
|
||||
'id' => $reqData['papelInterior'] ?? 0,
|
||||
'nombre' => $reqData['papelInteriorNombre'] ?? "",
|
||||
];
|
||||
$gramaje = $reqData['gramajeInterior'] ?? 0;
|
||||
$cliente_id = $reqData['clienteId'] ?? -1;
|
||||
|
||||
$input_data = array(
|
||||
'uso' => 'interior',
|
||||
'tipo_impresion_id' => $tipo_impresion_id,
|
||||
'datosPedido' => $datosPedido,
|
||||
'papel_generico' => $papel_generico,
|
||||
'gramaje' => $gramaje,
|
||||
'isColor' => intval($reqData['isColor']) ?? 0,
|
||||
'isHq' => intval($reqData['isHq']) ?? 0,
|
||||
'cliente_id' => $cliente_id,
|
||||
'paginas_color' => $paginas_color,
|
||||
);
|
||||
|
||||
$interiorPlana = PresupuestoService::obtenerPresupuestoClienteInterior($input_data);
|
||||
return $this->respond($interiorPlana);
|
||||
}
|
||||
else{
|
||||
return $this->failUnauthorized('Invalid request', 403);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/***********************
|
||||
*
|
||||
* Funciones auxiliares
|
||||
*
|
||||
**********************/
|
||||
protected function getTipoImpresion($tipo, $tapa){
|
||||
|
||||
$tipo_impresion_id = 0;
|
||||
|
||||
if($tipo == 'fresado'){
|
||||
|
||||
if($tapa == 'blanda')
|
||||
$tipo_impresion_id = 2;
|
||||
else
|
||||
$tipo_impresion_id = 1;
|
||||
}
|
||||
else if($tipo == 'cosido'){
|
||||
|
||||
if($tapa == 'blanda')
|
||||
$tipo_impresion_id = 4;
|
||||
else
|
||||
$tipo_impresion_id = 3;
|
||||
}
|
||||
else if($tipo == 'espiral'){
|
||||
|
||||
if($tapa == 'blanda')
|
||||
$tipo_impresion_id = 6;
|
||||
else
|
||||
$tipo_impresion_id = 5;
|
||||
}
|
||||
else if($tipo == 'wireo'){
|
||||
|
||||
if($tapa == 'blanda')
|
||||
$tipo_impresion_id = 8;
|
||||
else
|
||||
$tipo_impresion_id = 7;
|
||||
}
|
||||
else if($tipo == 'grapado'){
|
||||
$tipo_impresion_id = 21;
|
||||
}
|
||||
|
||||
return $tipo_impresion_id;
|
||||
}
|
||||
|
||||
|
||||
protected function calcular_merma($tirada, $POD, $formas_lineas_interior = []){
|
||||
|
||||
$merma = 0;
|
||||
|
||||
if($tirada>$POD){
|
||||
$merma = $tirada*0.1<=30 ? $tirada*0.1 : 30;
|
||||
}
|
||||
else{
|
||||
$merma_lineas = [];
|
||||
foreach($formas_lineas_interior as $formas_linea){
|
||||
if($formas_linea > $tirada)
|
||||
array_push($merma_lineas, $formas_linea-$tirada);
|
||||
else
|
||||
array_push($merma_lineas, $tirada%$formas_linea);
|
||||
}
|
||||
if(count($merma_lineas)>0)
|
||||
$merma = max($merma_lineas);
|
||||
}
|
||||
|
||||
|
||||
return round($merma, 0);
|
||||
}
|
||||
|
||||
|
||||
protected function getPapelFormatoListItems($selId = null)
|
||||
{
|
||||
$papelFormatoModel = model('App\Models\Configuracion\PapelFormatoModel');
|
||||
|
||||
Reference in New Issue
Block a user