/** * Consultar * * @param string $id * @param int $resultType * @return Ambigous <\Dispo\Data\CalidadData, NULL, array> */ function consultarPorClasificaFox($id, $resultType = \Application\Constants\ResultType::OBJETO) { $CalidadDAO = new CalidadDAO(); $CalidadDAO->setEntityManager($this->getEntityManager()); $reg = $CalidadDAO->consultarPorClasificaFox($id); return $reg; }
/** * * @param array $condiciones (grupo_dispo_cab_id, color_ventas_id, calidad_variedad_id, cadena_color_ventas_ids, cadena_calidad_variedad_ids) * @return array */ public function listadoDisponibilidadPorProveedor($condiciones, $omitir_registros_vacios = false) { $GrupoDispoCabDAO = new GrupoDispoCabDAO(); $DispoDAO = new DispoDAO(); $CalidadDAO = new CalidadDAO(); $ParametrizarDAO = new ParametrizarDAO(); $GrupoDispoCabDAO->setEntityManager($this->getEntityManager()); $DispoDAO->setEntityManager($this->getEntityManager()); $CalidadDAO->setEntityManager($this->getEntityManager()); $ParametrizarDAO->setEntityManager($this->getEntityManager()); $condiciones["dispo_rotacion_dias_inicio"] = $ParametrizarDAO->getValorParametro('dispo_rotacion_ini'); /*-------En caso que no exita la condicion['arr_fechas_cajas'] se le pone un valor nulo por defecto------*/ if (!array_key_exists('arr_fechas_cajas', $condiciones)) { $condiciones["arr_fechas_cajas"] = null; } //end if /*-------------------------------------------------------------------------------------------------------*/ $arr_grados = array('40', '50', '60', '70', '80', '90', '100', '110'); /** * Se obtiene el registro CABECERA de la DISPO X GRUPO */ $reg_grupoDispoCab = $GrupoDispoCabDAO->consultarArray($condiciones['grupo_dispo_cab_id']); if (empty($reg_grupoDispoCab)) { return null; } //end if $CalidadData = $CalidadDAO->consultar($reg_grupoDispoCab['calidad_id']); $clasifica_fox = $CalidadData->getClasificaFox(); if (!array_key_exists('cadena_color_ventas_ids', $condiciones)) { $condiciones['cadena_color_ventas_ids'] = ''; } if (!array_key_exists('cadena_calidad_variedad_ids', $condiciones)) { $condiciones['cadena_calidad_variedad_ids'] = ''; } /** * Se obtiene los registro de la DISPO GENERAL (UNIVERSO) */ /* $condiciones2 = array( "inventario_id" => $reg_grupoDispoCab['inventario_id'], "proveedor_id" => null, "clasifica" => $reg_grupoDispoCab['clasifica_fox'], "color_ventas_id" => $condiciones['color_ventas_id'], "calidad_variedad_id" => $condiciones['calidad_variedad_id'], "cadena_color_ventas_ids" => $condiciones['cadena_color_ventas_ids'], "cadena_calidad_variedad_ids" => $condiciones['cadena_calidad_variedad_ids'], "group_by_proveedor_id" => true ); $result_dispo_temp = $DispoDAO->listado($condiciones2); $result_dispo = $DispoDAO->TransformarResultIndexadoProveedor($result_dispo_temp); */ /** * Se obtiene los registros de la DISPO POR GRUPO */ $condiciones2 = array("grupo_dispo_cab_id" => $condiciones['grupo_dispo_cab_id'], "color_ventas_id" => $condiciones['color_ventas_id'], "calidad_variedad_id" => $condiciones['calidad_variedad_id'], "cadena_color_ventas_ids" => $condiciones['cadena_color_ventas_ids'], "cadena_calidad_variedad_ids" => $condiciones['cadena_calidad_variedad_ids']); $result_dispo_grupo = $GrupoDispoCabDAO->listado($condiciones2); /** * Se realizar el proceso de consolidacion de informacion */ $result = null; foreach ($result_dispo_grupo as $reg) { if ($omitir_registros_vacios == true) { if ($reg['40'] == 0 && $reg['50'] == 0 && $reg['60'] == 0 && $reg['70'] == 0 && $reg['80'] == 0 && $reg['90'] == 0 && $reg['100'] == 0 && $reg['110'] == 0) { continue; } //end if } //end if $reg_new = null; $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']['bunchs']['total'] = $reg['40']; $reg_new['50']['bunchs']['total'] = $reg['50']; $reg_new['60']['bunchs']['total'] = $reg['60']; $reg_new['70']['bunchs']['total'] = $reg['70']; $reg_new['80']['bunchs']['total'] = $reg['80']; $reg_new['90']['bunchs']['total'] = $reg['90']; $reg_new['100']['bunchs']['total'] = $reg['100']; $reg_new['110']['bunchs']['total'] = $reg['110']; /*$reg_new['40']['cajas']['total'] = 0; $reg_new['50']['cajas']['total'] = 0; $reg_new['60']['cajas']['total'] = 0; $reg_new['70']['cajas']['total'] = 0; $reg_new['80']['cajas']['total'] = 0; $reg_new['90']['cajas']['total'] = 0; $reg_new['100']['cajas']['total'] = 0; $reg_new['110']['cajas']['total'] = 0; */ /* $DispoDAO->consultarInventarioPorProveedor($proveedor_id, $inventario_id, $producto_id, $variedad_id, $grado_id, $tallos_x_bunch, $clasifica_fox); $DispoDAO->consultarPorInventarioPorCalidadPorProveedorPorGradoPorTallo($inventario_id, $clasifica_fox, $proveedor_id, $variedad_id, $grado_id, $tallos_x_bunch) */ /* * El resultado se encuentra ordenado del MAYOR STOCK al MENOR STOCK */ $result_dispo = $DispoDAO->consultarPorInventarioPorClasificaPorVariedadPorTallos($reg['producto_id'], $reg_grupoDispoCab['inventario_id'], $clasifica_fox, $reg['variedad_id'], $reg['tallos_x_bunch'], $condiciones['opcion_dispo'], $condiciones['dispo_rotacion_dias_inicio'], $condiciones['arr_fechas_cajas']); foreach ($arr_grados as $grado) { $stock_grupo = $reg[$grado]; if (!empty($result_dispo)) { if (array_key_exists($grado, $result_dispo)) { foreach ($result_dispo[$grado] as $key_proveedor => $stock_proveedor) { if ($stock_grupo > $stock_proveedor) { $valor = $stock_proveedor; $reg_new[$grado]['bunchs']['fincas'][$key_proveedor] = $valor; //$reg_new[$grado]['cajas']['fincas'][$key_proveedor] = 0; $stock_grupo = $stock_grupo - $valor; } else { $valor = $stock_grupo; $reg_new[$grado]['bunchs']['fincas'][$key_proveedor] = $valor; //$reg_new[$grado]['cajas']['fincas'][$key_proveedor] = 0; $stock_grupo = 0; } //end if } //end foreach } else { $debug = 1; //$valor = $stock_proveedor; //$reg_new[$grado]['bunchs']['fincas'][$key_proveedor]= 0; } //end if } else { $debug = 1; } //end if } //end foreach $result[$reg['producto_id'] . '-' . $reg['variedad_id'] . '-' . $reg['tallos_x_bunch']] = $reg_new; } //end foreach return $result; }
/** * * @param array $condiciones (inventario_id, proveedor_id, clasifica, color_ventas_id, calidad_variedad_id) */ public function generarExcel($condiciones) { set_time_limit(0); ini_set('memory_limit', '-1'); $InventarioDAO = new InventarioDAO(); $ProveedorDAO = new ProveedorDAO(); $CalidadDAO = new CalidadDAO(); $ColorVentasDAO = new ColorVentasDAO(); $CalidadVariedadDAO = new CalidadVariedadDAO(); $DispoDAO = new DispoDAO(); $InventarioDAO->setEntityManager($this->getEntityManager()); $ProveedorDAO->setEntityManager($this->getEntityManager()); $CalidadDAO->setEntityManager($this->getEntityManager()); $ColorVentasDAO->setEntityManager($this->getEntityManager()); $CalidadVariedadDAO->setEntityManager($this->getEntityManager()); $DispoDAO->setEntityManager($this->getEntityManager()); //----------------Se configura las Etiquetas de Seleccion----------------- $texto_inventario = 'TODOS'; $texto_proveedor = 'TODOS'; $texto_calidad = 'TODAS'; $texto_color_ventas = 'TODOS'; $texto_calidad_variedad = 'TODAS'; if (!empty($condiciones['inventario_id'])) { $InventarioData = $InventarioDAO->consultar($condiciones['inventario_id']); $texto_inventario = $InventarioData->getNombre(); } //end if if (!empty($condiciones['proveedor_id'])) { $ProveedorData = $ProveedorDAO->consultar($condiciones['proveedor_id']); $texto_proveedor = $ProveedorData->getNombre(); } //end if if (!empty($condiciones['clasifica'])) { $CalidadData = $CalidadDAO->consultarPorClasificaFox($condiciones['clasifica']); $texto_calidad = $CalidadData->getNombre(); } //end if if (!empty($condiciones['color_ventas_id'])) { $ColorVentasData = $ColorVentasDAO->consultar($condiciones['color_ventas_id']); $texto_color_ventas = $ColorVentasData->getNombre(); } //end if if (!empty($condiciones['calidad_variedad_id'])) { $CalidadVariedadData = $CalidadVariedadDAO->consultar($condiciones['calidad_variedad_id']); $texto_calidad_variedad = $CalidadVariedadData->getNombre(); } //end if //----------------Se inicia la configuracion del PHPExcel----------------- $PHPExcelApp = new PHPExcelApp(); $objPHPExcel = new \PHPExcel(); // Set document properties $PHPExcelApp->setUserName(''); $PHPExcelApp->setMetaDataDocument($objPHPExcel); //Se consultan los bunchs por fechas $result_fechas = $DispoDAO->listadoAgrupadoPorFechaBunch($condiciones); /* * Se añade el primer elemento en nulo en las fechas para indicar que * se obtendra toda la dispo de bunches en la primera pestaña del excel */ array_unshift($result_fechas, null); $indice_hoja = -1; foreach ($result_fechas as $reg_fecha) { if (empty($reg_fecha)) { $ind_fecha_dispo_final = count($result_fechas) - 1; $print_fecha_dispo = $result_fechas[1]['fecha_bunch'] . ' al ' . $result_fechas[$ind_fecha_dispo_final]['fecha_bunch']; } else { $print_fecha_dispo = $reg_fecha['fecha_bunch']; } //end if $indice_hoja++; switch ($indice_hoja) { case 0: //El primer elemento debe ser NULL de reg_fecha $condiciones_sin_fecha = $condiciones; $result = $this->listadoSinVacios($condiciones_sin_fecha); $titulo_hoja = 'Dispo General'; break; default: $condiciones_con_fecha = $condiciones; $condiciones_con_fecha['fecha_bunch'] = $reg_fecha['fecha_bunch']; $result = $this->listadoSinVacios($condiciones_con_fecha); $objPHPExcel->createSheet($indice_hoja); $titulo_hoja = $reg_fecha['fecha_bunch']; break; } //end switch $objPHPExcel->setActiveSheetIndex($indice_hoja); //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(13); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(0, 1, "DISPONIBILIDAD GENERAL"); $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)); //------------------------------Registra criterios linea 1-------------------------- $row = 2; $col_ini = $PHPExcelApp->getNameFromNumber(0); $col_fin = $PHPExcelApp->getNameFromNumber(13); $objRichText = new \PHPExcel_RichText(); $objRichText->createText(''); $objInventario = $objRichText->createTextRun('Inventario: '); $objInventario->getFont()->setBold(true); $objInventario->getFont()->setColor(new \PHPExcel_Style_Color(\PHPExcel_Style_Color::COLOR_DARKGREEN)); $objRichText->createText($texto_inventario); $objCalidad = $objRichText->createTextRun(' Calidad: '); $objCalidad->getFont()->setBold(true); $objCalidad->getFont()->setColor(new \PHPExcel_Style_Color(\PHPExcel_Style_Color::COLOR_DARKGREEN)); $objRichText->createText($texto_calidad); $objProveedor = $objRichText->createTextRun(' Proveedor: '); $objProveedor->getFont()->setBold(true); $objProveedor->getFont()->setColor(new \PHPExcel_Style_Color(\PHPExcel_Style_Color::COLOR_DARKGREEN)); $objRichText->createText($texto_proveedor); $objColor = $objRichText->createTextRun(' Color: '); $objColor->getFont()->setBold(true); $objColor->getFont()->setColor(new \PHPExcel_Style_Color(\PHPExcel_Style_Color::COLOR_DARKGREEN)); $objRichText->createText($texto_color_ventas); $objCategoria = $objRichText->createTextRun(' Categoria: '); $objCategoria->getFont()->setBold(true); $objCategoria->getFont()->setColor(new \PHPExcel_Style_Color(\PHPExcel_Style_Color::COLOR_DARKGREEN)); $objRichText->createText($texto_calidad_variedad); $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(13); //$etiqueta = ""; $texto_fechas = "Fecha Flor: " . $print_fecha_dispo . " Generado: " . \Application\Classes\Fecha::getFechaHoraActualServidor(); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(0, $row, $texto_fechas); $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); //--------------------------------------------------------------------------------- $row = $row + 1; $row_detalle_ini = $row; $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(0, $row, "Nro"); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(1, $row, "Id"); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(2, $row, "Variedad"); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(3, $row, " "); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(4, $row, "Color"); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(5, $row, "40"); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(6, $row, "50"); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(7, $row, "60"); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(8, $row, "70"); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(9, $row, "80"); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(10, $row, "90"); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(11, $row, "100"); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(12, $row, "110"); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(13, $row, "Total"); $objPHPExcel->getActiveSheet()->getColumnDimensionByColumn(0)->setAutoSize(true); $objPHPExcel->getActiveSheet()->getColumnDimensionByColumn(1)->setAutoSize(true); $objPHPExcel->getActiveSheet()->getColumnDimensionByColumn(2)->setAutoSize(true); $objPHPExcel->getActiveSheet()->getColumnDimensionByColumn(3)->setAutoSize(true); $objPHPExcel->getActiveSheet()->getColumnDimensionByColumn(4)->setAutoSize(true); $objPHPExcel->getActiveSheet()->getColumnDimensionByColumn(5)->setWidth(6); $objPHPExcel->getActiveSheet()->getColumnDimensionByColumn(6)->setWidth(6); $objPHPExcel->getActiveSheet()->getColumnDimensionByColumn(7)->setWidth(6); $objPHPExcel->getActiveSheet()->getColumnDimensionByColumn(8)->setWidth(6); $objPHPExcel->getActiveSheet()->getColumnDimensionByColumn(9)->setWidth(6); $objPHPExcel->getActiveSheet()->getColumnDimensionByColumn(10)->setWidth(6); $objPHPExcel->getActiveSheet()->getColumnDimensionByColumn(11)->setWidth(6); $objPHPExcel->getActiveSheet()->getColumnDimensionByColumn(12)->setWidth(6); $objPHPExcel->getActiveSheet()->getColumnDimensionByColumn(13)->setWidth(6); $objPHPExcel->getActiveSheet()->getStyle($col_ini . $row . ':' . $col_fin . $row)->applyFromArray($PHPExcelApp->getStyleArray($PHPExcelApp::STYLE_ARRAY_NEGRILLA)); $objPHPExcel_getActiveSheet = $objPHPExcel->getActiveSheet(); //$result = $this->listadoSinVacios($condiciones); //MORONITOR $totales['40'] = 0; $totales['50'] = 0; $totales['60'] = 0; $totales['70'] = 0; $totales['80'] = 0; $totales['90'] = 0; $totales['100'] = 0; $totales['110'] = 0; $totales['total'] = 0; $cont_linea = 0; foreach ($result as $reg) { $reg['variedad'] = trim($reg['variedad']); $reg['total'] = $reg['40'] + $reg['50'] + $reg['60'] + $reg['70'] + $reg['80'] + $reg['90'] + $reg['100'] + $reg['110']; //Array de Totales $totales['40'] = $totales['40'] + $reg['40']; $totales['50'] = $totales['50'] + $reg['50']; $totales['60'] = $totales['60'] + $reg['60']; $totales['70'] = $totales['70'] + $reg['70']; $totales['80'] = $totales['80'] + $reg['80']; $totales['90'] = $totales['90'] + $reg['90']; $totales['100'] = $totales['100'] + $reg['100']; $totales['110'] = $totales['110'] + $reg['110']; $totales['total'] = $totales['total'] + $reg['total']; $cont_linea++; $row = $row + 1; $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(0, $row, $cont_linea); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(1, $row, $reg['variedad_id']); if ($reg['tallos_x_bunch'] == 25) { $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(2, $row, $reg['variedad']); } else { $objRichText = new \PHPExcel_RichText(); $objRichText->createText($reg['variedad']); $objInventario = $objRichText->createTextRun(' (' . $reg['tallos_x_bunch'] . ')'); $objInventario->getFont()->setBold(true); $objInventario->getFont()->setItalic(true); $col_variedad = $PHPExcelApp->getNameFromNumber(2); $objInventario->getFont()->setColor(new \PHPExcel_Style_Color(\Application\Classes\PHPExcelApp::COLOR_ORANGE)); $objPHPExcel->getActiveSheet()->getCell($col_variedad . $row)->setValue($objRichText); //$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(2, $row, $reg['variedad'] ); } //end if 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['color_ventas_nombre']); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(5, $row, $reg['40']); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(6, $row, $reg['50']); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(7, $row, $reg['60']); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(8, $row, $reg['70']); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(9, $row, $reg['80']); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(10, $row, $reg['90']); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(11, $row, $reg['100']); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(12, $row, $reg['110']); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(13, $row, $reg['total']); //$objPHPExcel->getActiveSheet()->setCellValue('N'.$row,$reg['total'] ); } //end foreach //Totales $row = $row + 1; $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(0, $row, ''); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(1, $row, ''); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(2, $row, 'TOTALES'); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(3, $row, ''); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(4, $row, ''); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(5, $row, $totales['40']); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(6, $row, $totales['50']); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(7, $row, $totales['60']); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(8, $row, $totales['70']); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(9, $row, $totales['80']); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(10, $row, $totales['90']); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(11, $row, $totales['100']); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(12, $row, $totales['110']); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(13, $row, $totales['total']); $objPHPExcel->getActiveSheet()->getStyle($col_ini . $row . ':' . $col_fin . $row)->applyFromArray($PHPExcelApp->getStyleArray($PHPExcelApp::STYLE_ARRAY_NEGRILLA)); //Formato de Numeros $col_ini = $PHPExcelApp->getNameFromNumber(5); $col_fin = $PHPExcelApp->getNameFromNumber(13); $row_detalle_info_ini = $row_detalle_ini + 1; $objPHPExcel->getActiveSheet()->getStyle($col_ini . $row_detalle_info_ini . ':' . $col_fin . $row)->getNumberFormat()->setFormatCode("#,###"); //Margenes $col_ini = $PHPExcelApp->getNameFromNumber(0); $col_fin = $PHPExcelApp->getNameFromNumber(13); $objPHPExcel->getActiveSheet()->getStyle($col_ini . $row_detalle_ini . ":" . $col_fin . $row)->applyFromArray($PHPExcelApp->getStyleArray($PHPExcelApp::STYLE_ARRAY_BORDE_TODO)); // Rename worksheet $objPHPExcel->getActiveSheet()->setTitle($titulo_hoja); } //end foreach $objPHPExcel->setActiveSheetIndex(0); $PHPExcelApp->save($objPHPExcel, $PHPExcelApp::FORMAT_EXCEL_2007, "Dispo General.xlsx"); }
/** * * @param DispoData $DispoData * @param array $grados * @param int $color_ventas_id * @param int $calidad_variedad_id */ public function moverStock($DispoData, $grados, $color_ventas_id, $calidad_variedad_id, $clasifica_destino) { $GrupoDispoDetDAO = new GrupoDispoDetDAO(); $DispoDAO = new DispoDAO(); $CalidadDAO = new CalidadDAO(); $GrupoDispoCabDAO = new GrupoDispoCabDAO(); $GrupoDispoDetData = new GrupoDispoDetData(); $GrupoDispoDetDAO->setEntityManager($this->getEntityManager()); $DispoDAO->setEntityManager($this->getEntityManager()); $CalidadDAO->setEntityManager($this->getEntityManager()); $GrupoDispoCabDAO->setEntityManager($this->getEntityManager()); //Se establece el RANGO DE GRADOS al que se va afectar $flag_1era_vez = true; $sql_grados = ''; foreach ($grados as $reg) { if (!$flag_1era_vez) { $sql_grados = $sql_grados . ","; } //end if $sql_grados = $sql_grados . "'" . $reg['grado_id'] . "'"; $flag_1era_vez = false; } //end foreach //Se consulta el registro de la DISPO ORIGEN $sql = " SELECT dispo.* " . " FROM dispo INNER JOIN variedad " . " ON variedad.id \t\t= dispo.variedad_id "; if (!empty($calidad_variedad_id)) { $sql = $sql . " AND variedad.calidad_variedad_id = " . $calidad_variedad_id; } //end if if (!empty($color_ventas_id)) { $sql = $sql . " LEFT JOIN color_ventas " . " ON color_ventas.id \t= dispo.color_ventas_id "; } //end if $sql = $sql . " WHERE dispo.inventario_id \t= '" . $DispoData->getInventarioId() . "'" . " and dispo.producto \t\t\t= '" . $DispoData->getProducto() . "'" . " and dispo.variedad_id\t\t= '" . $DispoData->getVariedadId() . "'" . " and dispo.grado_id \t\t\tin (" . $sql_grados . ")" . " and dispo.tallos_x_bunch \t= " . $DispoData->getTallosxbunch() . "\tand dispo.clasifica\t\t \t= '" . $DispoData->getClasifica() . "'"; $stmt = $this->getEntityManager()->getConnection()->prepare($sql); $stmt->execute(); $result = $stmt->fetchAll(); //Se utiliza el fecth por que es un registro $DispoDataFind = new DispoData(); $DispoDataTarget = new DispoData(); foreach ($result as $reg) { $DispoDataFind->setFecha($reg['fecha']); $DispoDataFind->setInventarioId($reg['inventario_id']); $DispoDataFind->setFechaBunch($reg['fecha_bunch']); $DispoDataFind->setProveedorId($reg['proveedor_id']); $DispoDataFind->setProducto($reg['producto']); $DispoDataFind->setVariedadId($reg['variedad_id']); $DispoDataFind->setGradoId($reg['grado_id']); $DispoDataFind->setTallosxBunch($reg['tallos_x_bunch']); $DispoDataFind->setClasifica($clasifica_destino); $DispoDataSource = $this->consultarPorKey($DispoDataFind); if (empty($DispoDataSource)) { $DispoDataTarget->setFecha($reg['fecha']); $DispoDataTarget->setInventarioId($reg['inventario_id']); $DispoDataTarget->setFechaBunch($reg['fecha_bunch']); $DispoDataTarget->setProveedorId($reg['proveedor_id']); $DispoDataTarget->setProducto($reg['producto']); $DispoDataTarget->setVariedadId($reg['variedad_id']); $DispoDataTarget->setGradoId($reg['grado_id']); $DispoDataTarget->setTallosxBunch($reg['tallos_x_bunch']); $DispoDataTarget->setClasifica($clasifica_destino); $DispoDataTarget->setCantidadBunch($reg['cantidad_bunch']); $DispoDataTarget->setCantidadBunchDisponible($reg['cantidad_bunch_disponible']); $DispoDataTarget->setClasifica($clasifica_destino); $id = $this->ingresar($DispoDataTarget); } else { //Se actualiza la dispo de DESTINO (acumula) $sql = " UPDATE dispo " . " SET cantidad_bunch_disponible = cantidad_bunch_disponible + " . $reg['cantidad_bunch_disponible'] . " WHERE fecha\t\t\t\t= '" . $reg['fecha'] . "'" . "\tand inventario_id \t\t= '" . $reg['inventario_id'] . "'" . " and fecha_bunch\t\t\t= '" . $reg['fecha_bunch'] . "'" . " and proveedor_id\t\t= '" . $reg['proveedor_id'] . "'" . "\tand producto\t\t\t= '" . $reg['producto'] . "'" . " and variedad_id\t\t\t= '" . $reg['variedad_id'] . "'" . "\tand grado_id\t\t\t= " . $reg['grado_id'] . "\tand tallos_x_bunch\t\t= " . $reg['tallos_x_bunch'] . "\tand clasifica\t\t\t= '" . $clasifica_destino . "'"; $count = $this->getEntityManager()->getConnection()->executeUpdate($sql); } //end if //Se resta la dispo de ORIGEN (DISMINUYE) $sql = " UPDATE dispo " . " SET cantidad_bunch_disponible = cantidad_bunch_disponible - " . $reg['cantidad_bunch_disponible'] . " WHERE fecha\t\t\t\t= '" . $reg['fecha'] . "'" . "\tand inventario_id \t\t= '" . $reg['inventario_id'] . "'" . " and fecha_bunch\t\t\t= '" . $reg['fecha_bunch'] . "'" . " and proveedor_id\t\t= '" . $reg['proveedor_id'] . "'" . " and producto\t\t\t= '" . $reg['producto'] . "'" . " and variedad_id\t\t\t= '" . $reg['variedad_id'] . "'" . "\tand grado_id\t\t\t= " . $reg['grado_id'] . "\tand tallos_x_bunch\t\t= " . $reg['tallos_x_bunch'] . "\tand clasifica\t\t\t= '" . $reg['clasifica'] . "'"; $count = $this->getEntityManager()->getConnection()->executeUpdate($sql); //ACTUALIZA EL STOCK DE LOS GRUPOS DESTINO $tot_stock = $DispoDAO->consultartotalInventario($reg['inventario_id'], $reg['producto'], $clasifica_destino, $reg['variedad_id'], $reg['grado_id'], $reg['tallos_x_bunch']); /*if ($tot_stock['tot_cantidad_bunch'] < $tot_stock['tot_bunch_disponible']) { $tot_stock['tot_bunch_disponible'] = $tot_stock['tot_cantidad_bunch']; }//end if */ $CalidadData = $CalidadDAO->consultarPorClasificaFox($clasifica_destino); $result_dispocab = $GrupoDispoCabDAO->consultarPorInventario($reg['inventario_id'], $CalidadData->getId()); foreach ($result_dispocab as $reg_dispocab) { $GrupoDispoDetData->setGrupoDispoCabId($reg_dispocab['id']); $GrupoDispoDetData->setProductoId($reg['producto']); $GrupoDispoDetData->setVariedadId($reg['variedad_id']); $GrupoDispoDetData->setGradoId($reg['grado_id']); $GrupoDispoDetData->setTallosXBunch($reg['tallos_x_bunch']); $GrupoDispoDetData->setCantidadBunch($tot_stock['tot_cantidad_bunch']); $GrupoDispoDetData->setCantidadBunchDisponible($tot_stock['tot_bunch_disponible']); $GrupoDispoDetData->setUsuarioModId(1); $GrupoDispoDetData->setUsuarioIngId(1); $GrupoDispoDetDAO->registrar($GrupoDispoDetData); } //end foreach //ACTUALIZA EL STOCK DE LOS GRUPOS ORIGEN $tot_stock = $DispoDAO->consultartotalInventario($reg['inventario_id'], $reg['producto'], $reg['clasifica'], $reg['variedad_id'], $reg['grado_id'], $reg['tallos_x_bunch']); /*if ($tot_stock['tot_cantidad_bunch'] < $tot_stock['tot_bunch_disponible']) { $tot_stock['tot_bunch_disponible'] = $tot_stock['tot_cantidad_bunch']; }//end if */ $CalidadData = $CalidadDAO->consultarPorClasificaFox($reg['clasifica']); $result_dispocab = $GrupoDispoCabDAO->consultarPorInventario($reg['inventario_id'], $CalidadData->getId()); foreach ($result_dispocab as $reg_dispocab) { $GrupoDispoDetData->setGrupoDispoCabId($reg_dispocab['id']); $GrupoDispoDetData->setProductoId($reg['producto']); $GrupoDispoDetData->setVariedadId($reg['variedad_id']); $GrupoDispoDetData->setGradoId($reg['grado_id']); $GrupoDispoDetData->setTallosXBunch($reg['tallos_x_bunch']); $GrupoDispoDetData->setCantidadBunch($tot_stock['tot_cantidad_bunch']); $GrupoDispoDetData->setCantidadBunchDisponible($tot_stock['tot_bunch_disponible']); $GrupoDispoDetData->setUsuarioModId(1); $GrupoDispoDetData->setUsuarioIngId(1); $GrupoDispoDetDAO->registrar($GrupoDispoDetData); } //end foreach } //end foreach return true; }