コード例 #1
0
 /**
  * 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;
 }
コード例 #2
0
 /**
  *
  * @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;
 }
コード例 #3
0
 /**
  * 
  * @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");
 }
コード例 #4
0
 /**
  * 
  * @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;
 }