/** * Obtiene la dispo * * @param string $cliente_id * @param int $usuario_id * @param int $marcacion_sec * @param string $tipo_caja_id * @param string $variedad_id * @param int $grado_id * @param boolean $get_fincas * @param boolean $rebajar_cajas_pedido * @param string $producto_id * @param int $tallos_x_bunch * @return array */ function getDispo($cliente_id, $usuario_id, $marcacion_sec, $tipo_caja_id = null, $variedad_id = null, $grado_id = null, $get_fincas = false, $rebajar_cajas_pedido = true, $validar_variedad_faltante = false, $producto_id = null, $tallos_x_bunch = null) { $UsuarioDAO = new UsuarioDAO(); $DispoDAO = new DispoDAO(); $TipoCajaMatrizDAO = new TipoCajaMatrizDAO(); $PedidoDetDAO = new PedidoDetDAO(); $VariedadDAO = new VariedadDAO(); /* $this->getEntityManager()->getConnection()->beginTransaction(); try { */ $UsuarioDAO->setEntityManager($this->getEntityManager()); $DispoDAO->setEntityManager($this->getEntityManager()); $TipoCajaMatrizDAO->setEntityManager($this->getEntityManager()); $PedidoDetDAO->setEntityManager($this->getEntityManager()); $VariedadDAO->setEntityManager($this->getEntityManager()); /** * Consulta el GRUPO_DISPO_CAB_ID del usuario de cliente */ $row_usuario = $UsuarioDAO->consultar($usuario_id, \Application\Constants\ResultType::MATRIZ); if (empty($row_usuario)) { //'Usuario no tiene asignado un grupo' $result = array('respuesta_code' => '01', 'respuesta_msg' => '00 - Availability Unassigned, please contact to your executive'); return $result; } else { $grupo_precio_cab_id = $row_usuario['grupo_precio_cab_id']; //MORONITOR $grupo_dispo_cab_id = $row_usuario['grupo_dispo_cab_id']; $inventario_id = $row_usuario['inventario_id']; $clasifica_fox = $row_usuario['clasifica_fox']; $calidad_id = $row_usuario['calidad_id']; } //end if /** * Se obtiene el inventario para el cliente por proveedor y tipo de inventario especifico, * por lo que dara los bunches disponibles, y posteriormente si existe una * RESTRICCION en GRUPO_DISPO se aplica la regla para la dispo por grupo */ if (empty($inventario_id)) { //Usuario no tiene inventario, comuniquese con su asesor $result = array('respuesta_code' => '02', 'respuesta_msg' => '01 - Stock unloaded, please contact to your executive'); return $result; } //end if if (empty($clasifica_fox)) { //'Calidad no tiene clasifica_fox, comuniquese con su asesor' $result = array('respuesta_code' => '02', 'respuesta_msg' => '02 - Settings unloaded, please contact to your executive'); return $result; } //end if if (empty($grupo_precio_cab_id)) { //'Usuario no tiene asignado GRUPO PRECIO, comuniquese con su asesor' $result = array('respuesta_code' => '02', 'respuesta_msg' => '03 - Price unloaded, please contact to your executive'); return $result; } //end if if (empty($grupo_dispo_cab_id)) { //Usuario no tiene asignado GRUPO DISPO, comuniquese con su asesor $result = array('respuesta_code' => '02', 'respuesta_msg' => '04 - Stock unloaded, please contact to your executive'); return $result; } //end if if ($row_usuario['inventario_id'] != $row_usuario['grupo_precio_cab_inventario_id']) { //INCOMPATIBILIDAD DE CONFIGURACION DE POLITICA DE INVENTARIO (GRUPO PRECIO) $result = array('respuesta_code' => 'NO-CONFIG-INV-PRECIO', 'respuesta_msg' => '05 - Stock unloaded, please contact to your executive'); return $result; } //end if if ($row_usuario['inventario_id'] != $row_usuario['grupo_dispo_cab_inventario_id']) { //INCOMPATIBILIDAD DE CONFIGURACION DE POLITICA DE INVENTARIO (GRUPO DISPO) $result = array('respuesta_code' => 'NO-CONFIG-INV-DISPO', 'respuesta_msg' => '06 - Stock unloaded, please contact to your executive'); return $result; } //end if if ($row_usuario['calidad_id'] != $row_usuario['grupo_precio_cab_calidad_id']) { //INCOMPATIBILIDAD DE CONFIGURACION DE POLITICA DE CALIDAD (GRUPO PRECIO) $result = array('respuesta_code' => 'NO-CONFIG-CAL-PRECIO', 'respuesta_msg' => '07 - Settings unloaded, please contact to your executive'); return $result; } //end if if ($row_usuario['calidad_id'] != $row_usuario['grupo_dispo_cab_calidad_id']) { //INCOMPATIBILIDAD DE CONFIGURACION DE POLITICA DE CALIDAD (GRUPO DISPO) $result = array('respuesta_code' => 'NO-CONFIG-CAL-DISPO', 'respuesta_msg' => '08 - Settings unloaded, please contact to your executive'); return $result; } //end if $result = $DispoDAO->consultarInventarioPorUsuario($usuario_id, $producto_id, $variedad_id, $grado_id, $clasifica_fox); /** *Ajusta el stock de los bunch de las fincas para mostrar la dispo de acuerdo al GRUPO_DISPO_DET *se debe de hacer un quiebre por producto, variedad, grado, tallos_x_bunch y finca, para ajustar la dispo segun las restricciones */ $producto_id_ant = null; $variedad_id_ant = null; $grado_id_ant = null; $tallos_x_bunch_ant = null; $grupo_dispo_det_cantidad_bunch_disponible = 0; //while($row = $result->fetch_array(MYSQLI_ASSOC)) if (empty($result)) { if ($validar_variedad_faltante) { $VariedadData = $VariedadDAO->consultar($variedad_id); $result = array('respuesta_code' => '12', 'respuesta_msg' => 'Do not exist any box of: ' . $tipo_caja_id . ' ' . $VariedadData->getNombre() . ' ' . $grado_id . ' cm'); unset($VariedadData); return $result; } //end if } //end if $result_dispo = null; foreach ($result as $row) { if ($row['variedad_id'] == 'ALB' && $row['grado_id'] == '60') { $debug = 1; } //end if //$porcentaje = 100/100; if (empty($row['grupo_dispo_det_cantidad_bunch_disponible'])) { $tot_bunch_disponibles = 0; /*------------------------------------*/ if (empty($tot_bunch_disponibles)) { if ($validar_variedad_faltante) { //$VariedadData = $VariedadDAO->consultar($variedad_id); $result = array('respuesta_code' => '13', 'respuesta_msg' => 'Do not exist any box of: ' . $tipo_caja_id . ' ' . $row['variedad_nombre'] . ' ' . $grado_id . ' cm'); //unset($VariedadData); return $result; } //end if } //end if /*------------------------------------*/ //$porcentaje = $row['grupo_dispo_det_cantidad_bunch_disponible']/100; } else { if ($row['grupo_dispo_det_cantidad_bunch_disponible'] > $row['tot_bunch_disponible']) { $tot_bunch_disponibles = $row['tot_bunch_disponible']; } else { $tot_bunch_disponibles = $row['grupo_dispo_det_cantidad_bunch_disponible']; } } //end if if ($row['precio'] == 0) { continue; //MORONITOR } //Si varia la variedad_id y el grado_id se indica la cantidad de bunch disponibles del GRUPO DISPO if ($producto_id_ant != $row['producto_id'] || $variedad_id_ant != $row['variedad_id'] || $grado_id_ant != $row['grado_id'] || $tallos_x_bunch_ant != $row['tallos_x_bunch']) { if (empty($row['grupo_dispo_det_cantidad_bunch_disponible'])) { $grupo_dispo_det_cantidad_bunch_disponible = 0; } else { $grupo_dispo_det_cantidad_bunch_disponible = $row['grupo_dispo_det_cantidad_bunch_disponible']; } //end if $producto_id_ant = $row['producto_id']; $variedad_id_ant = $row['variedad_id']; $grado_id_ant = $row['grado_id']; $tallos_x_bunch_ant = $row['tallos_x_bunch']; } //end if $grupo_dispo_det_cantidad_bunch_disponible_ant = $grupo_dispo_det_cantidad_bunch_disponible; //configura la cantidad de bunch de la FINCA en relacion del GRUPO DISPO if ($grupo_dispo_det_cantidad_bunch_disponible > $row['tot_bunch_disponible']) { $tot_bunch_disponibles = $row['tot_bunch_disponible']; $grupo_dispo_det_cantidad_bunch_disponible = $grupo_dispo_det_cantidad_bunch_disponible - $row['tot_bunch_disponible']; } else { $tot_bunch_disponibles = $grupo_dispo_det_cantidad_bunch_disponible; $grupo_dispo_det_cantidad_bunch_disponible = 0; } //end if if (!empty($tot_bunch_disponibles)) { $row_dispo = $row; $row_dispo['producto_id'] = $row_dispo['producto_id']; $row_dispo['variedad_nombre'] = trim($row_dispo['variedad_nombre']); $row_dispo['proveedor_id'] = $row_dispo['proveedor_id']; $row_dispo['variedad_id'] = $row_dispo['variedad_id']; $row_dispo['grado_id'] = $row_dispo['grado_id']; //$row_dispo['tallos_x_bunch'] = $row_dispo['tallos_x_bunch']; $row_dispo['precio'] = $row_dispo['precio']; $row_dispo['precio_oferta'] = $row_dispo['precio_oferta']; $row_dispo['grupo_dispo_det_cantidad_bunch_disponible'] = $grupo_dispo_det_cantidad_bunch_disponible_ant; //$row_dispo['tot_bunch_disponible'] = floor($row_dispo['tot_bunch_disponible']*$porcentaje); $row_dispo['tot_bunch_disponible'] = $tot_bunch_disponibles; $row_dispo['tallos_x_bunch'] = $row_dispo['tot_tallos_x_bunch'] / $row_dispo['veces_tallos_x_bunch']; $row_dispo['color_nombre'] = $row_dispo['color_nombre']; $row_dispo['url_ficha'] = $row_dispo['url_ficha']; //Los siguientes se llenaran más adelante $row_dispo['tipo_caja_origen_estado'] = NULL; $row_dispo['tipo_caja_origen_id'] = NULL; $row_dispo['tipo_caja_unds_bunch'] = NULL; $row_dispo['nro_cajas'] = NULL; $result_dispo[] = $row_dispo; } //end if } //end foreach if (empty($result_dispo)) { $result = array('respuesta_code' => '08', 'respuesta_msg' => 'Dispo unavailable'); return $result; //NO HAY DISPO } foreach ($result_dispo as &$row_dispo) { $row = $TipoCajaMatrizDAO->consultaPorInventarioPorMarcacionPorVariedadPorGrado($inventario_id, $marcacion_sec, $row_dispo['variedad_id'], $row_dispo['grado_id'], $tipo_caja_id); if (!empty($row)) { //echo("<pre>");var_dump($row);echo("</pre>"); //DEBUG $row_dispo['tipo_caja_id'] = $row['tipo_caja_id']; $row_dispo['tipo_caja_origen_estado'] = $row['tipo_caja_origen_estado']; $row_dispo['tipo_caja_origen_id'] = $row['tipo_caja_origen_id']; $row_dispo['tipo_caja_unds_bunch'] = $row['tipo_caja_unds_bunch']; $row_dispo['tallos_x_bunch'] = $row_dispo['tallos_x_bunch']; //MEJORA POR LOS BUNCHS if (empty($row['tipo_caja_unds_bunch'])) { $row_dispo['nro_cajas'] = 0; } else { $row_dispo['nro_cajas'] = floor($row_dispo['tot_bunch_disponible'] / $row['tipo_caja_unds_bunch']); } //end if //obtiene la dispo por proveedores if ($get_fincas == true) { $row_dispo_temp = null; $row_dispo_temp['proveedor_id'] = $row_dispo['proveedor_id']; $row_dispo_temp['tot_bunch_disponible'] = $row_dispo['tot_bunch_disponible']; $row_dispo_temp['nro_cajas'] = $row_dispo['nro_cajas']; $proveedores_dispo[] = $row_dispo_temp; } //end if } else { $result = array('respuesta_code' => '03', 'respuesta_msg' => $row_dispo['variedad_nombre'] . ' ' . $row_dispo['grado_id'] . ' cm variety have not ' . $tipo_caja_id . ' box available'); //throw new Exception('Error, no tiene caja disponible'); return $result; } //end if } //end foreach /** * Consolida las cajas de los proveedores (a nivel FINCAS) */ $result_consolidado = NULL; $bd_1era_vez = true; $producto_id_ant = NULL; $variedad_id_ant = NULL; $grado_id_ant = NULL; $tallos_x_bunch_ant = NULL; //echo("<pre>");var_dump($result_dispo);echo("</pre>"); exit foreach ($result_dispo as $row) { if ($bd_1era_vez == true || $producto_id_ant != $row['producto_id'] || $variedad_id_ant != $row['variedad_id'] || $grado_id_ant != $row['grado_id'] || $tallos_x_bunch_ant != $row['tallos_x_bunch']) { if ($bd_1era_vez == false) { if (!empty($row_new['nro_cajas'])) { $key = $producto_id_ant . '-' . $variedad_id_ant . '-' . trim($grado_id_ant) . '-' . $tallos_x_bunch_ant; $result_consolidado[$key] = $row_new; } //end if } //end if $bd_1era_vez = false; //Inicializa los campos totalizadores $row_new = NULL; $row_new['nro_cajas'] = 0; $row_new['tot_bunch_disponible'] = 0; } //end if //Se totaliza el registro $row_new['producto_id'] = $row['producto_id']; $row_new['inventario_id'] = $inventario_id; $row_new['grado_id'] = $row['grado_id']; $row_new['variedad_id'] = $row['variedad_id']; $row_new['variedad_nombre'] = $row['variedad_nombre']; $row_new['tipo_caja_id'] = $row['tipo_caja_id']; $row_new['tipo_caja_origen_estado'] = $row['tipo_caja_origen_estado']; $row_new['tipo_caja_origen_id'] = $row['tipo_caja_origen_id']; $row_new['cantidad_bunch'] = $row['tipo_caja_unds_bunch']; $row_new['tipo_caja_default_id'] = $tipo_caja_id; $row_new['nro_cajas'] = $row_new['nro_cajas'] + $row['nro_cajas']; $row_new['tot_bunch_disponible'] = $row_new['tot_bunch_disponible'] + $row['tot_bunch_disponible']; $row_new['tallos_x_bunch'] = $row['tallos_x_bunch']; $row_new['color_nombre'] = $row['color_nombre']; $row_new['url_ficha'] = $row['url_ficha']; $row_new['precio'] = $row['precio']; $row_new['precio_oferta'] = $row['precio_oferta']; //Control para el quiebre $producto_id_ant = $row['producto_id']; $variedad_id_ant = $row['variedad_id']; $grado_id_ant = $row['grado_id']; $tallos_x_bunch_ant = $row['tallos_x_bunch']; } //end foreach if ($bd_1era_vez == false) { if (!empty($row_new['nro_cajas'])) { $key = $producto_id_ant . '-' . $variedad_id_ant . '-' . trim($grado_id_ant) . '-' . $tallos_x_bunch_ant; $result_consolidado[$key] = $row_new; } //end if } //end if /** * Consulta todos los pedido del cliente en estado comprando * para poder homologar las cajas para poderlas restar del stock */ $result = $PedidoDetDAO->consultarPedidosEstadoComprando($cliente_id, $inventario_id, $producto_id, $variedad_id, $grado_id, $tallos_x_bunch, $calidad_id); //Ajusta el porcentaje de acuerdo a la restriccion de GRUPO_DISPO //var_dump($result_consolidado); $nro_cajas = 0; foreach ($result as $row) { $key = $row['producto_id'] . '-' . $row['variedad_id'] . '-' . trim($row['grado_id']) . '-' . $row['tallos_x_bunch']; $row_consolidado =& $result_consolidado[$key]; if ($rebajar_cajas_pedido == true) { $nro_cajas_homologada = $PedidoDetDAO->getCajasHomologadaPedido($inventario_id, $cliente_id, $marcacion_sec, $row['variedad_id'], $row['grado_id'], "C", $row_consolidado['tipo_caja_id'], $row['tallos_x_bunch'], $calidad_id); } else { $nro_cajas_homologada = 0; } $row_consolidado['nro_cajas'] = $row_consolidado['nro_cajas'] - $nro_cajas_homologada; if ($row_consolidado['nro_cajas'] < 0) { $row_consolidado['nro_cajas'] = 0; } //end if } //end foreach /** * Se quita el key del array, para que no afecte al pasarlo por JSON */ $result_consolidado2 = null; if (!empty($result_consolidado)) { foreach ($result_consolidado as $reg) { if ($reg['nro_cajas'] > 0) { $result_cajas = $TipoCajaMatrizDAO->consultarTipoCajaPorInventarioPorVariedadPorGrado($inventario_id, $reg['variedad_id'], $reg['grado_id']); $cajas = null; foreach ($result_cajas as $row_caja) { $cajas[] = $row_caja['tipo_caja_id']; } //end while $reg['cajas'] = $cajas; //obtiene la dispo por proveedores if ($get_fincas == true) { $reg['proveedores_dispo'] = $proveedores_dispo; } //end if $result_consolidado2[] = $reg; } //end if } //end foreach } //end if //$this->getEntityManager()->getConnection()->commit(); $result = array('respuesta_code' => 'OK', 'respuesta_msg' => '', 'result_dispo' => $result_consolidado2); //return $result_consolidado2; /* echo('<pre>'); var_dump($result); echo('</pre>'); die(); */ return $result; /* } catch (Exception $e) { $this->getEntityManager()->getConnection()->rollback(); $this->getEntityManager()->close(); throw $e; } */ }
/** * * @param array $condiciones (criterio_busqueda, busqueda_color , busqueda_estado) */ public function generarExcel($condiciones) { set_time_limit(0); ini_set('memory_limit', '-1'); $ColorVentasBO = new ColorVentasBO(); $VariedadDAO = new VariedadDAO(); $ColorVentasBO->setEntityManager($this->getEntityManager()); $VariedadDAO->setEntityManager($this->getEntityManager()); //----------------Se configura las Etiquetas de Seleccion----------------- $texto_criterio_busqueda = 'TODOS'; $texto_color = 'TODOS'; $texto_estado = 'TODOS'; if (!empty($condiciones['criterio_busqueda'])) { $texto_criterio_busqueda = $condiciones['criterio_busqueda']; } //end if switch ($condiciones['busqueda_estado']) { case 'A': $texto_estado = 'ACTIVO'; break; case 'I': $texto_estado = 'INACTIVO'; break; } //end switch if (!empty($condiciones['busqueda_color'])) { //$ColorVentasData = $ColorVentasBO->consultar($condiciones['busqueda_color']); $texto_color = $condiciones['busqueda_color']; } //end if //----------------Se inicia la configuracion del PHPExcel----------------- $PHPExcelApp = new PHPExcelApp(); $objPHPExcel = new \PHPExcel(); // Set document properties $PHPExcelApp->setUserName(''); $PHPExcelApp->setMetaDataDocument($objPHPExcel); $objPHPExcel->setActiveSheetIndex(0); //Configura el tamaño del Papel $objPHPExcel->getActiveSheet()->getPageSetup()->setOrientation(\PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE); $objPHPExcel->getActiveSheet()->getPageSetup()->setPaperSize(\PHPExcel_Worksheet_PageSetup::PAPERSIZE_A4); //Se establece la escala de la pagina $objPHPExcel->getActiveSheet()->getPageSetup()->setFitToWidth(1); $objPHPExcel->getActiveSheet()->getPageSetup()->setFitToHeight(0); //Se establece los margenes de la pagina $objPHPExcel->getActiveSheet()->getPageMargins()->setTop(0.1); $objPHPExcel->getActiveSheet()->getPageMargins()->setRight(0.1); $objPHPExcel->getActiveSheet()->getPageMargins()->setLeft(0.1); $objPHPExcel->getActiveSheet()->getPageMargins()->setBottom(0.1); //------------------------------Registra la cabecera-------------------------------- $row = 1; $col_ini = $PHPExcelApp->getNameFromNumber(0); $col_fin = $PHPExcelApp->getNameFromNumber(11); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(0, 1, "LISTADO DE VARIEDADES"); $objPHPExcel->getActiveSheet()->mergeCells($col_ini . $row . ':' . $col_fin . $row); $objPHPExcel->getActiveSheet()->getStyle($col_ini . $row . ':' . $col_fin . $row)->applyFromArray($PHPExcelApp->getStyleArray($PHPExcelApp::STYLE_ARRAY_NEGRILLA)); $objPHPExcel->getActiveSheet()->getStyle($col_ini . $row . ':' . $col_fin . $row)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); //------------------------------Registra criterios linea 1-------------------------- $row = 2; $col_ini = $PHPExcelApp->getNameFromNumber(0); $col_fin = $PHPExcelApp->getNameFromNumber(11); $objRichText = new \PHPExcel_RichText(); $objRichText->createText(''); $objCriterio = $objRichText->createTextRun(' Criterio: '); $objCriterio->getFont()->setBold(true); $objCriterio->getFont()->setColor(new \PHPExcel_Style_Color(\PHPExcel_Style_Color::COLOR_DARKGREEN)); $objRichText->createText($texto_criterio_busqueda); $objColor = $objRichText->createTextRun(' Color Ventas: '); $objColor->getFont()->setBold(true); $objColor->getFont()->setColor(new \PHPExcel_Style_Color(\PHPExcel_Style_Color::COLOR_DARKGREEN)); $objRichText->createText($texto_color); $objEstado = $objRichText->createTextRun(' Estado: '); $objEstado->getFont()->setBold(true); $objEstado->getFont()->setColor(new \PHPExcel_Style_Color(\PHPExcel_Style_Color::COLOR_DARKGREEN)); $objRichText->createText($texto_estado); $objPHPExcel->getActiveSheet()->getCell($col_ini . $row)->setValue($objRichText); $objPHPExcel->getActiveSheet()->mergeCells($col_ini . $row . ':' . $col_fin . $row); //------------------------------ Registro de Fecha de Generacion -------------------------------- $row = 3; $col_ini = $PHPExcelApp->getNameFromNumber(0); $col_fin = $PHPExcelApp->getNameFromNumber(11); //$etiqueta = ""; $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(0, $row, "Generado: " . \Application\Classes\Fecha::getFechaHoraActualServidor()); $objPHPExcel->getActiveSheet()->mergeCells($col_ini . $row . ':' . $col_fin . $row); $objPHPExcel->getActiveSheet()->getStyle($col_ini . $row)->applyFromArray($PHPExcelApp->getStyleArray($PHPExcelApp::STYLE_ARRAY_NEGRILLA)); $objPHPExcel->getActiveSheet()->getStyle($col_ini . $row)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_RIGHT); //-------------------------ESTABLECE TITULO DE COLUMNAS---------------------------- $row = $row + 1; $row_detalle_ini = $row; $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(0, $row, "Nro"); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(1, $row, "Codigo"); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(2, $row, "Variedad"); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(3, $row, "Link"); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(4, $row, "Calidad"); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(5, $row, "Obtentor"); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(6, $row, "Bunch"); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(7, $row, "Color Base"); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(8, $row, "Color Venta"); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(9, $row, "Solido"); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(10, $row, "Real"); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(11, $row, "Estado"); //-------------------------ESTABLECE ANCHO DE COLUMNAS---------------------------- $objPHPExcel->getActiveSheet()->getColumnDimensionByColumn(0)->setAutoSize(true); $objPHPExcel->getActiveSheet()->getColumnDimensionByColumn(1)->setAutoSize(true); $objPHPExcel->getActiveSheet()->getColumnDimensionByColumn(2)->setWidth(25); $objPHPExcel->getActiveSheet()->getColumnDimensionByColumn(3)->setWidth(6); $objPHPExcel->getActiveSheet()->getColumnDimensionByColumn(4)->setAutoSize(true); $objPHPExcel->getActiveSheet()->getColumnDimensionByColumn(5)->setAutoSize(true); $objPHPExcel->getActiveSheet()->getColumnDimensionByColumn(6)->setAutoSize(true); $objPHPExcel->getActiveSheet()->getColumnDimensionByColumn(7)->setAutoSize(true); $objPHPExcel->getActiveSheet()->getColumnDimensionByColumn(8)->setWidth(11); $objPHPExcel->getActiveSheet()->getColumnDimensionByColumn(9)->setWidth(6); $objPHPExcel->getActiveSheet()->getColumnDimensionByColumn(10)->setWidth(6); $objPHPExcel->getActiveSheet()->getColumnDimensionByColumn(11)->setWidth(7); $objPHPExcel->getActiveSheet()->getStyle($col_ini . $row . ':' . $col_fin . $row)->applyFromArray($PHPExcelApp->getStyleArray($PHPExcelApp::STYLE_ARRAY_NEGRILLA)); $objPHPExcel_getActiveSheet = $objPHPExcel->getActiveSheet(); $result = $this->listadoExcel($condiciones); $cont_linea = 0; foreach ($result as $reg) { $cont_linea++; $row = $row + 1; $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(0, $row, $cont_linea); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(0, $row, $cont_linea); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(1, $row, $reg['id']); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(2, $row, $reg['nombre']); if (!empty($reg['url_ficha'])) { $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(3, $row, 'FOTO'); $objPHPExcel->getActiveSheet()->getCell('D' . $row)->getHyperlink()->setUrl($reg['url_ficha']); } else { $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(3, $row, ''); } //end if $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(4, $row, $reg['calidad']); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(5, $row, $reg['nombre_obtentor']); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(6, $row, $reg['nombre_bunch']); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(7, $row, $reg['color_base']); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(8, $row, $reg['color_venta']); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(9, $row, $reg['solido']); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(10, $row, $reg['es_real']); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(11, $row, $reg['estado']); } //end foreach //$objPHPExcel->getActiveSheet()->getStyle($col_ini.$row.':'.$col_fin.$row)->applyFromArray($PHPExcelApp->getStyleArray($PHPExcelApp::STYLE_ARRAY_NEGRILLA)); //Margenes $col_ini = $PHPExcelApp->getNameFromNumber(0); $col_fin = $PHPExcelApp->getNameFromNumber(11); $objPHPExcel->getActiveSheet()->getStyle($col_ini . $row_detalle_ini . ":" . $col_fin . $row)->applyFromArray($PHPExcelApp->getStyleArray($PHPExcelApp::STYLE_ARRAY_BORDE_TODO)); // Rename worksheet $objPHPExcel->getActiveSheet()->setTitle('Listado Variedades'); $PHPExcelApp->save($objPHPExcel, $PHPExcelApp::FORMAT_EXCEL_2007, "Listado_Variedades.xlsx"); }
/** * @param string * @param array $condiciones (grupo_precio_cab_id) * @return array */ public function listado($tipo_precio, $condiciones) { $GrupoPrecioCabDAO = new GrupoPrecioCabDAO(); $GrupoDispoDetDAO = new GrupoPrecioDetDAO(); $DispoDAO = new DispoDAO(); $VariedadDAO = new VariedadDAO(); $GrupoPrecioCabDAO->setEntityManager($this->getEntityManager()); $GrupoDispoDetDAO->setEntityManager($this->getEntityManager()); $DispoDAO->setEntityManager($this->getEntityManager()); $VariedadDAO->setEntityManager($this->getEntityManager()); /** * Se obtiene el registro CABECERA de la DISPO X GRUPO */ $reg_grupoPrecioCab = $GrupoPrecioCabDAO->consultarArray($condiciones['grupo_precio_cab_id']); if (empty($reg_grupoPrecioCab)) { return null; } //end if /** * Se obtiene los registro de la lista de VARIEDADES (UNIVERSO) */ $condiciones2 = array("clasifica_fox" => $reg_grupoPrecioCab['clasifica_fox'], "color_ventas_id" => $condiciones['color_ventas_id']); $result_dispo = $VariedadDAO->listadoDispo($condiciones2); /** * Se obtiene los registro de la DISPO GENERAL (UNIVERSO) */ /* $condiciones2 = array( "inventario_id" => $reg_grupoPrecioCab['inventario_id'], "proveedor_id" => null, "clasifica" => $reg_grupoPrecioCab['clasifica_fox'], "color_ventas_id" => $condiciones['color_ventas_id'] ); $result_dispo = $DispoDAO->listado($condiciones2); */ /** * Se obtiene los registros de el PRECIO POR GRUPO */ $condiciones2 = array("grupo_precio_cab_id" => $condiciones['grupo_precio_cab_id'], "color_ventas_id" => $condiciones['color_ventas_id']); $result_dispo_grupo = $GrupoDispoDetDAO->listado($tipo_precio, $condiciones2); /** * Se realizar el proceso de consolidacion de informacion */ //Indexar el RESULT de la DISPO GENERAL $result = null; foreach ($result_dispo as $reg) { $reg_new['producto_id'] = $reg['producto_id']; $reg_new['variedad_id'] = $reg['variedad_id']; $reg_new['variedad'] = trim($reg['variedad']); /*$reg_new['tallos_x_bunch'] = $reg['tallos_x_bunch'];*/ $reg_new['color_ventas_nombre'] = $reg['color_ventas_nombre']; $reg_new['40'] = 0; $reg_new['50'] = 0; $reg_new['60'] = 0; $reg_new['70'] = 0; $reg_new['80'] = 0; $reg_new['90'] = 0; $reg_new['100'] = 0; $reg_new['110'] = 0; $reg_new['ofer40'] = 0; $reg_new['ofer50'] = 0; $reg_new['ofer60'] = 0; $reg_new['ofer70'] = 0; $reg_new['ofer80'] = 0; $reg_new['ofer90'] = 0; $reg_new['ofer100'] = 0; $reg_new['ofer110'] = 0; $reg_new['existe'] = 0; //$result[$reg['producto_id'].'-'.$reg['variedad_id'].'-'.$reg['tallos_x_bunch']] = $reg_new; $result[$reg['producto_id'] . '-' . $reg['variedad_id']] = $reg_new; } //end foreach //Completa los campos del RESULT con la DISPO POR GRUPO foreach ($result_dispo_grupo as $reg) { //Se puede dar el caso que el registro exista en la lista de precios y no exista en el dispo //esto se puede deber a que de la dispo general lo han quitado por alguna razon de comercializacion //$key = $reg['producto_id'].'-'.$reg['variedad_id'].'-'.$reg['tallos_x_bunch']; $key = $reg['producto_id'] . '-' . $reg['variedad_id']; if (!array_key_exists($key, $result)) { $reg_new['variedad_id'] = $reg['variedad_id']; $reg_new['variedad'] = trim($reg['variedad']); /*$reg_new['tallos_x_bunch'] = $reg['tallos_x_bunch'];*/ $reg_new['color_ventas_nombre'] = $reg['color_ventas_nombre']; $reg_new['40'] = 0; $reg_new['50'] = 0; $reg_new['60'] = 0; $reg_new['70'] = 0; $reg_new['80'] = 0; $reg_new['90'] = 0; $reg_new['100'] = 0; $reg_new['110'] = 0; $reg_new['ofer40'] = 0; $reg_new['ofer50'] = 0; $reg_new['ofer60'] = 0; $reg_new['ofer70'] = 0; $reg_new['ofer80'] = 0; $reg_new['ofer90'] = 0; $reg_new['ofer100'] = 0; $reg_new['ofer110'] = 0; $result[$key] = $reg_new; } //end if $reg_result =& $result[$key]; $reg_result['40'] = $reg['40']; $reg_result['50'] = $reg['50']; $reg_result['60'] = $reg['60']; $reg_result['70'] = $reg['70']; $reg_result['80'] = $reg['80']; $reg_result['90'] = $reg['90']; $reg_result['100'] = $reg['100']; $reg_result['110'] = $reg['110']; $reg_result['ofer40'] = $reg['ofer40']; $reg_result['ofer50'] = $reg['ofer50']; $reg_result['ofer60'] = $reg['ofer60']; $reg_result['ofer70'] = $reg['ofer70']; $reg_result['ofer80'] = $reg['ofer80']; $reg_result['ofer90'] = $reg['ofer90']; $reg_result['ofer100'] = $reg['ofer100']; $reg_result['ofer110'] = $reg['ofer110']; $reg_result['existe'] = 1; } //end foreach return $result; }