trabajando en el back de las tiradas

This commit is contained in:
Jaime Jiménez
2024-03-03 21:39:23 +01:00
parent d96199d2d0
commit 536e70ec64
8 changed files with 1050 additions and 588 deletions

View File

@ -12,37 +12,166 @@ class Test extends BaseController
{
function __construct()
{
}
public function index()
{
$json_text = '[{"paginas":"150","paginas_impresion":0,"papel":"3","papel_impresion_id":"45","gramaje":"90.00","maquina_id":"33","row_id":"lp_bnhq"},{"paginas":"150","paginas_impresion":0,"papel":"3","papel_impresion_id":"45","gramaje":"90.00","maquina_id":"97","row_id":"lp_colorhq"},{"paginas":"2","paginas_impresion":0,"papel":"5","papel_impresion_id":"49","gramaje":"270.00","maquina_id":"55","row_id":"lp_cubierta"},{"paginas":"4","paginas_impresion":0,"papel":"1","papel_impresion_id":"91","gramaje":"200.00","maquina_id":"55","row_id":"lp_sobrecubierta"}]';
echo '<pre>';
$model = model('App\Models\Presupuestos\PresupuestoAcabadosModel');
$tarifas = [
(object)['tarifa_id'=>1, "cubierta"=>0, "sobrecubierta"=>0]
];
var_dump($model->deleteServiciosNotInArray(44, $tarifas));
var_dump($this->test_get_tirada_alt(
tirada: 200,
merma: 20,
tipo_impresion_id: 4,
json_data: $json_text,
cliente_id: 685,
ancho: 150,
alto: 210,
solapas_cubierta: 0,
solapas_ancho_cubierta: 0,
solapas_sobrecubierta: 0,
solapas_ancho_sobrecubierta: 0,
lomo: 16.53
));
echo '</pre>';
/*
$linea = PresupuestoService::getCostesLinea('interior', $datosPedido, $maquina, $papel, $opciones_papel, $tarifa);
echo '<pre>';
var_dump($formas);
echo '</pre>';
echo '<pre>';
$tarifa_value = $this->get_tarifa_enc(18,150,22,150,210);
var_dump($tarifa_value[0]);
$model = model('App\Models\Presupuestos\PresupuestoEncuadernacionesModel');
$result = $model->calcularTarifa($tarifa_value[0], 150, true);
var_dump($result);
echo '</pre>';*/
}
private function test_get_tirada_alt($tirada, $merma, $tipo_impresion_id,
$json_data, $cliente_id, $ancho, $alto,
$solapas_cubierta, $solapas_ancho_cubierta, $solapas_sobrecubierta, $solapas_ancho_sobrecubierta, $lomo)
{
$values = [];
if ($json_data) {
$data = json_decode($json_data, true);
foreach ($data as $linea) {
echo '------------------------------------<br>';
var_dump($linea);
// Se obtienen los valores de cada linea para el calculo del precio
$datosPedido = (object)array(
'paginas' => intval($linea['paginas']) ?? 0,
'tirada' => intval($tirada) ?? 0,
'merma' => intval($merma) ?? 0,
'ancho' => intval($ancho) ?? 100000,
'alto' => intval($alto) ?? 100000,
'a_favor_fibra' => $linea['aFavorFibra'] ?? 1,
'isCosido' => (new \App\Models\Configuracion\TipoPresupuestoModel())->get_isCosido($tipo_impresion_id), // JJO esto es custom por cada tipo de presupuesto
);
if ($linea['row_id'] == 'lp_guardas') {
$datosPedido->paginas_impresion = intval($linea['paginas_impresion']) ?? 0;
// Para el caso de Fresado y Cosido tapa dura, las guardas son un diptico
// y hay que imprimirlas como "cosido" (dos hojas pegadas). En el caso de espiral
// o wire-o tapa dura, las guardas se imprimen como hojas sueltas
if ($tipo_impresion_id == 1 || $tipo_impresion_id == 3) {
$datosPedido->isCosido = true;
} else if ($tipo_impresion_id == 5 || $tipo_impresion_id == 7) {
$datosPedido->isCosido = false;
}
} else if ($linea['row_id'] == 'lp_sobrecubierta' || $linea['row_id'] == 'lp_cubierta') {
$datosPedido->solapas =
$linea['row_id'] == 'lp_cubierta' ? $solapas_cubierta : $solapas_sobrecubierta;
$datosPedido->solapas_ancho =
$linea['row_id'] == 'lp_cubierta' ? $solapas_ancho_cubierta : $solapas_ancho_sobrecubierta;
$datosPedido->lomo = $lomo;
$type = $linea['row_id'] == 'lp_cubierta' ? 'cubierta' : 'sobrecubierta';
$datosPedido->anchoExteriores = PresupuestoService::getAnchoTotalExteriores($type, $tipo_impresion_id, $datosPedido);
$datosPedido->altoExteriores = PresupuestoService::getAltoTotalExteriores($type, $tipo_impresion_id, $datosPedido);
}
$maquina = (new \App\Models\Configuracion\MaquinaModel())->find($linea['maquina_id']);
$papel = (new \App\Models\Configuracion\PapelImpresionModel())->find($linea['papel_impresion_id']);
$pg = (new \App\Models\Configuracion\PapelGenericoModel())->find($linea['papel']);
$papel_generico['id'] = $pg->id;
$papel_generico['nombre'] = $pg->nombre;
$maquina->maquina_id = $maquina->id;
unset($maquina->id);
switch ($linea['row_id']) {
case 'lp_rot_bn':
case 'lp_rot_color':
$uso = 'rotativa';
$tipo = strpos($linea['row_id'], "_bn") !== false ? 'negro' : 'color';
break;
case 'lp_cubierta':
$uso = 'cubierta';
break;
case 'lp_sobrecubierta':
$uso = 'sobrecubierta';
break;
case 'lp_guardas':
$uso = 'guardas';
break;
default:
$uso = 'interior';
$isHq = strpos($linea['row_id'], "hq") !== false ? true : false;
$isColor = strpos($linea['row_id'], "_color") !== false ? true : false;
$tipo = $isColor ? ($isHq ? 'colorhq' : 'color') : ($isHq ? 'negrohq' : 'negro');
break;
}
if ($uso == 'cubierta' || $uso == 'sobrecubierta' || $uso == 'guardas') {
$isColor = true;
$isHq = true;
$tipo = 'colorhq';
}
$opciones_papel = PresupuestoService::get_opciones_papel($uso, $isColor);
$datosTipolog = $linea['gotaNegro'] ?? null;
if (!is_null($datosTipolog)) {
$datosTipolog = [];
$data = (object)array(
'negro' => intval($linea['cobNegro']) ?? 0,
'cyan' => intval($linea['cobCyan']) ?? 0,
'magenta' => intval($linea['cobMagenta']) ?? 0,
'amarillo' => intval($linea['cobAmarillo']) ?? 0,
'cg' => intval($linea['cobCG']) ?? 0,
'gota_negro' => intval($linea['gotaNegro']) ?? 0,
'gota_color' => intval($linea['gotaColor']) ?? 0,
);
array_push($datosTipolog, $data);
}
$data['uso'] = $uso;
$data['tipo'] = $tipo;
$data['datosPedido'] = $datosPedido;
$data['cliente_id'] = $cliente_id;
$data['papel'] = $papel;
$data['opciones_papel'] = $opciones_papel;
$data['maquina'] = $maquina;
$data['papel_generico'] = (array)$papel_generico;
$data['isColor'] = $isColor;
$data['a_favor_fibra'] = $linea['aFavorFibra'] ?? null;
$data['datosTipolog'] = $datosTipolog;
$data['gramaje'] = $linea['gramaje'] ?? 0;
if ($linea['row_id'] != 'lp_rot_bn' && $linea['row_id'] != 'lp_rot_color') {
$linea_coste = PresupuestoService::getLineaPresupuestoPlana($data);
var_dump($linea_coste);
}
if (empty($linea))
continue;
array_push($values, $linea_coste);
}
} else {
$values = [];
}
}
private function asignar_tarifa_defecto_todos_usuarios()
{
@ -59,9 +188,9 @@ class Test extends BaseController
$clientes = $clienteModel->getResource()->get()->getResultObject();
foreach ($clientes as $cliente){
foreach ($clientes as $cliente) {
foreach ($plantillaDefecto as $plantillaDefectoLinea){
foreach ($plantillaDefecto as $plantillaDefectoLinea) {
$data = [
'plantilla_id' => $plantillaDefectoId,
@ -83,137 +212,149 @@ class Test extends BaseController
echo '</pre>';*/
$builder->insert($data);
}
//break;
}
}
public function init_presupuesto_encuadernacion($tipo_presupuesto, $solapas, $paginas, $tirada, $ancho, $alto, $POD){
public function init_presupuesto_encuadernacion($tipo_presupuesto, $solapas, $paginas, $tirada, $ancho, $alto, $POD)
{
$model = model('App\Models\Presupuestos\PresupuestoEncuadernacionesModel');
return $model->initPresupuesto($tipo_presupuesto, $solapas, $paginas, $tirada, $ancho, $alto, $POD);
}
public function get_precio_tarifa($tarifa_encuadernacion_id, $paginas, $tirada, $ancho, $alto, $proveedor_id, $POD){
public function get_precio_tarifa($tarifa_encuadernacion_id, $paginas, $tirada, $ancho, $alto, $proveedor_id, $POD)
{
$model = model('App\Models\Presupuestos\PresupuestoEncuadernacionesModel');
return $model->getPrecioTarifa($tarifa_encuadernacion_id, $paginas, $tirada, $ancho, $alto, $proveedor_id, $POD);
}
public function get_precio_tarifa_acabado($tarifa_id, $tirada, $POD){
public function get_precio_tarifa_acabado($tarifa_id, $tirada, $POD)
{
$model = model('App\Models\Presupuestos\PresupuestoAcabadosModel');
return $model->getPrecioTarifa($tarifa_id, $tirada, $POD);
}
public function get_precio_tarifa_horas($tarifa_encuadernacion_id, $paginas, $tirada, $proveedor_id, $POD){
public function get_precio_tarifa_horas($tarifa_encuadernacion_id, $paginas, $tirada, $proveedor_id, $POD)
{
$model = model('App\Models\Presupuestos\PresupuestoEncuadernacionesModel');
return $model->getPrecioTarifaHoras($tarifa_encuadernacion_id, $paginas, $tirada, $proveedor_id, $POD);
}
public function get_tarifa_enc($tarifa_id, $paginas, $tirada, $ancho, $alto){
public function get_tarifa_enc($tarifa_id, $paginas, $tirada, $ancho, $alto)
{
$model = model('App\Models\Tarifas\TarifaEncuadernacionModel');
return $model->getTarifaPresupuestoEncuadernacion($tarifa_id, $paginas, $tirada, $ancho, $alto);
}
public function getProveedoresForSelector_enc($tarifa_id, $paginas, $tirada, $ancho, $alto){
public function getProveedoresForSelector_enc($tarifa_id, $paginas, $tirada, $ancho, $alto)
{
$model = model('App\Models\Presupuestos\PresupuestoEncuadernacionesModel');
return $model->getProveedoresForSelector($tarifa_id, $paginas, $tirada, $ancho, $alto);
}
public function get_dimensiones_enc(){
public function get_dimensiones_enc()
{
$dimensionModel = model('App\Models\Tarifas\TarifaEncuadernacionDimensionesModel');
$dimensiones = $dimensionModel->getDimensiones();
var_dump($dimensiones);
foreach($dimensiones as $dim){
$dim->label= lang("TarifaEncuadernacionLineas." . $dim->label);
foreach ($dimensiones as $dim) {
$dim->label = lang("TarifaEncuadernacionLineas." . $dim->label);
}
var_dump($dimensiones);
}
public function get_tarifas_encuadernacion($tipo_presupuesto, $solapas){
public function get_tarifas_encuadernacion($tipo_presupuesto, $solapas)
{
$model = model('App\Models\Presupuestos\TipoPresupuestoTarifaEncuadernacionModel');
return $model->get_tarifas($tipo_presupuesto,$solapas);
}
return $model->get_tarifas($tipo_presupuesto, $solapas);
}
public function timeToSeconds(){
public function timeToSeconds()
{
$time = '99:59:59';
$time_parts = explode(":", $time);
$seconds = $time_parts[2] + $time_parts[1] * 60 + $time_parts[0] * 3600;
echo "Time in seconds: " . $seconds;
}
public function getLP(){
public function getLP()
{
$lp_model = model('App\Models\Presupuestos\PresupuestoLineaModel');
$data = $lp_model->getLineasPresupuesto(8);
$papel_imp_model = model('App\Models\Configuracion\PapelImpresionModel');
$maquina_model = model('App\Models\Configuracion\MaquinaModel');
foreach($data as $linea){
foreach ($data as $linea) {
//$linea->papel_impresion_id = $papel_imp_model->getValue_Nombre($linea->papel_impresion_id)[0];
//$linea->maquina_id = $maquina_model->getValue_Nombre($linea->maquina_id)[0];
var_dump($linea->papel_impresion_id);
var_dump($linea->maquina_id);
}
}
public function createLP(){
public function createLP()
{
$lp_model = model('App\Models\Presupuestos\PresupuestoLineaModel');
$lp_model->createForPresupuesto(8);
}
public function getPapelesHQ(){
public function getPapelesHQ()
{
$model = model('App\Models\Configuracion\PapelGenericoModel');
$data = $model->getPapelForComparador('colorhq', false, false);
var_dump($data);
}
public function getPapelesCubierta(){
public function getPapelesCubierta()
{
$model = model('App\Models\Configuracion\PapelGenericoModel');
$data = $model->getPapelForComparador('colorhq', true, false);
var_dump($data);
}
public function getPapelesSobrecubierta(){
public function getPapelesSobrecubierta()
{
$model = model('App\Models\Configuracion\PapelGenericoModel');
$data = $model->getPapelForComparador('colorhq', false, true, false);
var_dump($data);
}
public function getPapelesGuardas(){
public function getPapelesGuardas()
{
$model = model('App\Models\Configuracion\PapelGenericoModel');
$data = $model->getPapelForComparador('color', false, false, false, true);
var_dump($data);
}
public function getGramaje(){
public function getGramaje()
{
$model = new PapelGenericoModel();
$data = $model->getGramajeComparador("AHUESADO OFFSET", "bnhq" );
$data = $model->getGramajeComparador("AHUESADO OFFSET", "bnhq");
var_dump($data);
}
public function testGetPrecioPliegoRotativa()
{
$paginas=240;
$paginas = 240;
$papel_impresion = (object)array(
'id' => 198,
'gramaje' => 90,
'precio_tonelada'=> 1600
'precio_tonelada' => 1600
);
$maquina = (object)array(
//'id' => 48,
@ -222,9 +363,8 @@ class Test extends BaseController
);
$precio = PresupuestoService::getPrecioPliego($maquina, $papel_impresion, $paginas);
var_dump($precio);
}
public function testGetMaquinasFromTarifas()
@ -340,9 +480,8 @@ class Test extends BaseController
var_dump($papel->nombre);
$tarifa = (new \App\Models\Configuracion\MaquinasTarifasImpresionModel())->getTarifa($maquina->maquina_id, $uso, $tipo);
$linea = PresupuestoService::getCostesLinea($uso, $datosPedido, $maquina, $papel, $opciones_papel, $tarifa);
var_dump($linea);
}
}
echo '</pre>';
@ -391,18 +530,18 @@ class Test extends BaseController
options: $opciones_papel
);
foreach ($papeles as $papel) {
$papelImpresionTipologiaModel = new \App\Models\Configuracion\PapelImpresionTipologiaModel();
$datosTipologias = $papelImpresionTipologiaModel
->findTipologiasForPapelImpresion($papel->id, $parametrosRotativa->colorPages>0?'color':'negro')
->findTipologiasForPapelImpresion($papel->id, $parametrosRotativa->colorPages > 0 ? 'color' : 'negro')
->get()->getResultObject();
echo '<pre>';
var_dump($papel->id);
var_dump($datosTipologias);
echo '</pre>';
$parametrosRotativa->rotativa_gota_negro = $datosTipologias[0]->gota_negro;
$parametrosRotativa->rotativa_gota_color = $datosTipologias[0]->gota_color;
$parametrosRotativa->rotativa_negro = $datosTipologias[0]->negro;
@ -488,7 +627,7 @@ class Test extends BaseController
echo '<pre>';
var_dump($maquinas);
echo '</pre>';
// Se recorren las máquinas y se calcula el coste de linea por cada una
foreach ($maquinas as $maquina) {
@ -503,7 +642,7 @@ class Test extends BaseController
var_dump($tarifa);
echo '</pre>';
if(!is_float($tarifa)){
if (!is_float($tarifa)) {
continue;
}
$linea = PresupuestoService::getCostesLinea($uso, $datosPedido, $maquina, $papel, $opciones_papel, $tarifa);
@ -519,12 +658,10 @@ class Test extends BaseController
array_push($lineas, $linea);
}
}
echo '<pre>';
var_dump($lineas);
echo '</pre>';
}
public static function testLineasSobrecubierta()
@ -581,7 +718,7 @@ class Test extends BaseController
echo '<pre>';
var_dump($maquinas);
echo '</pre>';
// Se recorren las máquinas y se calcula el coste de linea por cada una
foreach ($maquinas as $maquina) {
@ -596,7 +733,7 @@ class Test extends BaseController
var_dump($tarifa);
echo '</pre>';
if(!is_float($tarifa)){
if (!is_float($tarifa)) {
continue;
}
$linea = PresupuestoService::getCostesLinea($uso, $datosPedido, $maquina, $papel, $opciones_papel, $tarifa);
@ -612,12 +749,9 @@ class Test extends BaseController
array_push($lineas, $linea);
}
}
echo '<pre>';
var_dump($lineas);
echo '</pre>';
}
}