예제 #1
0
function crearSolicitudTarea($tipo, $id, $fecha_inicio, $fecha_fin, $titulo, $descripcion, $encargado, $prioridad, $proyeccion, $url)
{
    LogController::logWebServiceIn('Llamada a web service: ' . __FILE__ . ' - ' . __FUNCTION__, compact('tipo', 'id', 'fecha_inicio', 'fecha_fin', 'titulo', 'descripcion', 'encargado', 'prioridad', 'proyeccion', 'url'));
    $returnMessage = "";
    $handlerAttachmentCore = new AttachmentCore();
    $handlerRequestCore = new RequestCore();
    $handlerUserCore = new UserCore();
    $handlerFlowSettingsCore = new FlowSettingsCore();
    // Tomar datos de aprobador
    $flow = Flow::find(FLOW_TAREAS);
    $creador = User::find($encargado);
    if ($creador) {
        $jefe = User::find($creador->user_reports_to);
        if (!$jefe) {
            $jefe = User::find($flow->flow_administrator);
        }
        // Crear solicitud
        $request_flow = $flow->flow_id;
        $request_id = $handlerRequestCore->getLastGeneralRequestId() + 1;
        $inner_request_id = $handlerRequestCore->getLastGeneralRequestId($request_flow) + 1;
        $request_name = "Aprobación: " . $titulo;
        $request_description = "Aprobación de tarea: " . $descripcion;
        $request_createdby = $creador->user_id;
        $request_assignedto = $jefe->user_id;
        $handlerRequestCore->createNewRequest($request_id, $inner_request_id, $request_flow, $request_name, $request_description, $request_createdby, $request_assignedto);
        Tarea::create(["ef_id" => $request_id, "ext_id" => $id, "tipo" => $tipo, "titulo" => $titulo, "descripcion" => $descripcion, "encargado" => $request_createdby, "aprobador_1" => $request_assignedto, "aprobador_2" => "", "fecha_inicio" => $fecha_inicio, "fecha_fin" => $fecha_fin, "prioridad" => $prioridad, "proyeccion" => $proyeccion]);
        RequestMetadataCore::set($request_id, "APR-DOBLE-APROBACION", "No");
        RequestMetadataCore::set($request_id, "APR-APROBADO", "No");
        RequestMetadataCore::set($request_id, "APR-COMENTARIO", "");
        //Tomar archivo de campo url y adjuntar
        if ($url != '') {
            $tmpFileName = basename($url);
            file_put_contents($tmpFileName, fopen($url, 'r'));
            $filetype = FlowSettingsCore::get($request_flow, "APR_FILE_ADJUNTO");
            $handlerAttachmentCore->addAttachmentToRequest($request_id, $filetype, dirname(__FILE__) . "/" . $tmpFileName, $_SESSION["environment_path"], "admin", "Adjunto de tarea");
        }
    } else {
        $returnMessage = "ERROR: Usuario " . $encargado . " no existe en BPM. Imposible continuar";
    }
    return $returnMessage;
}
예제 #2
0
function crearDocumentoYSolicitud($arrayCabecera, $arrayLineas, $tmpString, $rideContent, $rideExtension, $fullXml)
{
    $handlerRequestCore = new RequestCore();
    $handlerAttachmentCore = new AttachmentCore();
    $handlerRequestMetadataCore = new RequestMetadataCore();
    // Verificar el usuario creador / al que se asignará
    $creator = Responsable::whereRuc($arrayCabecera['ruc'])->lists('responsable')->implode(',');
    if (empty($creator)) {
        $creator = FlowSettingsCore::get(FLOW_RECEPCIONDOCUMENTOS, "RDE_DEF_ASIGNACION");
    }
    if ($arrayCabecera["tipo_doc"] == "FAC") {
        $customStep = FlowSettingsCore::get(FLOW_RECEPCIONDOCUMENTOS, "RDE_STEP_FACTURAS");
    } else {
        $customStep = FlowSettingsCore::get(FLOW_RECEPCIONDOCUMENTOS, "RDE_STEP_OTROS");
        $creator = '';
    }
    // Crear solicitud por cada proveedor
    $request_flow = FLOW_RECEPCIONDOCUMENTOS;
    $request_id = $handlerRequestCore->getLastGeneralRequestId() + 1;
    $inner_request_id = $handlerRequestCore->getLastGeneralRequestId($request_flow) + 1;
    $request_name = $request_description = $arrayCabecera["tipo_doc"] . " - " . $arrayCabecera["razonSocial"];
    $request_createdby = "admin";
    $request_id = $handlerRequestCore->createNewRequest($request_id, $inner_request_id, $request_flow, $request_name, $request_description, $request_createdby, $creator, $customStep);
    // Crear documento
    $arrayCabecera['ef_id'] = $request_id;
    $documento = Documento::create($arrayCabecera);
    // Setear id_documento en líneas e insertar
    foreach ($arrayLineas as &$linea) {
        $linea['id_documento'] = $documento->id;
        DocumentoLinea::create($linea);
    }
    // Guardar archivos temporales en disco
    $xmlFile = dirname(__FILE__) . "/facturas/tmpAttachments/tmp.xml";
    $pdfFile = dirname(__FILE__) . "/facturas/tmpAttachments/tmp." . $rideExtension;
    $filetypeXml = FlowSettingsCore::get(FLOW_RECEPCIONDOCUMENTOS, "RDE_FILE_XML");
    $filetypePdf = FlowSettingsCore::get(FLOW_RECEPCIONDOCUMENTOS, "RDE_FILE_PDF");
    //file_put_contents($xmlFile, $tmpString);
    file_put_contents($xmlFile, $fullXml);
    $handlerAttachmentCore->addAttachmentToRequest($request_id, $filetypeXml, $xmlFile, $_SESSION["environment_path"], "admin", "Documento XML");
    if (!empty($rideExtension) && !empty($rideContent)) {
        file_put_contents($pdfFile, $rideContent);
        $handlerAttachmentCore->addAttachmentToRequest($request_id, $filetypePdf, $pdfFile, $_SESSION["environment_path"], "admin", "Documento PDF");
    }
    // Setear variables de solicitud
    $handlerRequestMetadataCore->setVariable($request_id, "RDE-TIPO-DOCUMENTO", $arrayCabecera["tipo_doc"]);
    $handlerRequestMetadataCore->setVariable($request_id, "RDE-NUM-DOCUMENTO", $arrayCabecera["estab"] . "-" . $arrayCabecera["ptoEmi"] . "-" . $arrayCabecera["secuencial"]);
    $handlerRequestMetadataCore->setVariable($request_id, "RDE-NOMBRE-PROVEEDOR", $arrayCabecera["razonSocial"]);
}
예제 #3
0
    $tipo = "venta_local";
    $creador = $handlerFlowSettingsCore->getSettingValue(CURRENT_FLOW, "REC_PRO_USUARIO_VL");
    $asignado_a = $handlerFlowSettingsCore->getSettingValue(CURRENT_FLOW, "REC_PRO_USUARIO_VL");
} else {
    $tipo = "exportacion";
    $creador = $handlerFlowSettingsCore->getSettingValue(CURRENT_FLOW, "REC_PRO_USUARIO_EXP");
    $asignado_a = $handlerFlowSettingsCore->getSettingValue(CURRENT_FLOW, "REC_PRO_USUARIO_EXP");
}
$customStep = "";
if (isset($_POST["reclamo_extemporaneo"])) {
    if ($_POST["reclamo_extemporaneo"] == "1") {
        $customStep = "91";
        $asignado_a = "cjalvarez";
    }
}
$request_id = $handlerRequestCore->createNewRequest(0, 0, CURRENT_FLOW, "Reclamo - " . date("Y-m-d") . " - " . $_POST["cliente_nombre"], "Reclamo - " . date("Y-m-d") . " - " . $_POST["cliente_nombre"], $creador, $asignado_a, $customStep);
$reclamo_monto = 0;
if (isset($_REQUEST["detalles"])) {
    for ($i = 0; $i < count($_POST["detalles"]); $i++) {
        $tmpArray = explode("||", $_POST["detalles"][$i]);
        $reclamo_monto += floatval(str_replace(",", "", $tmpArray[7]));
    }
}
$reclamoData = array("ef_id" => $request_id, "cliente_codigo" => $_POST["cliente_codigo"], "cliente_nombre" => $_POST["cliente_nombre"], "cliente_identificacion" => $_POST["cliente_identificacion"], "cliente_direccion" => $_POST["cliente_direccion"], "contacto_nombre" => $_POST["contacto_nombre"], "contacto_telefono" => $_POST["contacto_telefono"], "contacto_email" => $_POST["contacto_email"], "reclamo_descripcion" => $_POST["reclamo_descripcion"], "reclamo_fecha_inicio" => date("Y-m-d"), "reclamo_fecha_fin" => "", "reclamo_tipo" => $tipo, "reclamo_clase" => $_POST["reclamo_clase"], "reclamo_extemporaneo" => isset($POST["reclamo_extemporaneo"]) ? $_POST["reclamo_extemporaneo"] : "0", "reclamo_num_interno" => $_POST["reclamo_num_interno"], "reclamo_monto" => $reclamo_monto, "visita_requiere" => "", "visita_descripcion" => "", "visita_responsable" => "", "visita_fecha" => "", "analisis_descripcion" => "", "analisis_responsable" => "", "analisis_fecha" => "", "decision_decision" => "", "decision_descripcion" => "", "decision_monto" => "", "decision_responsable" => "", "decision_fecha" => "", "nc_devolucion_producto" => "", "nc_concepto" => "", "nc_descripcion" => "", "nc_responsable" => "", "nc_fecha" => "", "nc_numero" => "", "nc_monto" => "", "nc_rma" => "", "nc_num_pedido" => "");
$handlerReclamoCore->insert($reclamoData);
$reclamoResult = $handlerReclamoCore->getRecordsByFieldFilter(array(array("field" => "ef_id", "type" => "s", "value" => $request_id)));
$reclamo_id = $reclamoResult[0]["id"];
$listaFacturas = array();
if (isset($_REQUEST["detalles"])) {
    for ($i = 0; $i < count($_POST["detalles"]); $i++) {
        $tmpArray = explode("||", $_POST["detalles"][$i]);
예제 #4
0
 public function insertReclamo()
 {
     $input = Request::createFromGlobals();
     $handlerRequestCore = new \RequestCore();
     $handlerAttachmentCore = new \AttachmentCore();
     $clase = Clase::find($input->reclamo['clase']);
     // Asignar creador
     $creador = $asignado_a = FlowSettingsCore::get(FLOW_RECLAMOS, "REC_PRO_USUARIO_VL");
     if (FlowSettingsCore::get(FLOW_RECLAMOS, "REC_PRO_REGION_EXT") == $input->reclamo['region']) {
         $creador = $asignado_a = FlowSettingsCore::get(FLOW_RECLAMOS, "REC_PRO_USUARIO_EXP");
     }
     $extemporaneo = false;
     $customStep = "";
     foreach ($input->facturas as $factura) {
         if ($factura['infoFactura']['extemporaneo'] == true) {
             $customStep = FlowSettingsCore::get(FLOW_RECLAMOS, "REC_STEP_EXTEMPORANEAS");
             $asignado_a = FlowSettingsCore::get(FLOW_RECLAMOS, "REC_USER_EXTEMPORANEAS");
             $extemporaneo = true;
             break;
         }
     }
     $request_id = $handlerRequestCore->createNewRequest(0, 0, FLOW_RECLAMOS, "Reclamo - " . date("Y-m-d") . " - " . $input->cliente['nombre'], "Reclamo - " . date("Y-m-d") . " - " . $input->cliente['nombre'], $creador, $asignado_a, $customStep);
     $reclamo = Reclamo::create(['ef_id' => $request_id, 'cliente_codigo' => $input->cliente['codigo'], 'cliente_nombre' => $input->cliente['nombre'], 'cliente_identificacion' => $input->cliente['identificacion'], 'cliente_direccion' => $input->cliente['direccion'], 'contacto_nombre' => $input->contacto['nombre'], 'contacto_telefono' => $input->contacto['telefono'], 'contacto_email' => $input->contacto['email'], 'reclamo_descripcion' => $input->reclamo['descripcion'], 'reclamo_fecha_inicio' => date('Y-m-d H:i:s'), 'reclamo_clase' => $input->reclamo['clase'], 'reclamo_region' => $input->reclamo['region'], 'reclamo_extemporaneo' => $extemporaneo ? 1 : 0, 'reclamo_num_interno' => $input->reclamo['num_interno'], 'reclamo_monto' => $input->reclamo['total_reclamo'], 'visita_requiere' => 0]);
     $listaFacturas = array();
     foreach ($input->facturas as $factura) {
         foreach ($factura['detalles'] as $detalle) {
             if ($detalle['cantidad_reclamo'] > 0 || $detalle['cantidad_no_facturado'] > 0) {
                 if ($detalle['cantidad_no_facturado'] > 0) {
                     $cantidad = $detalle['cantidad_no_facturado'];
                     $valor = $detalle['valor_no_facturado'];
                     $lote = $detalle['lote_no_facturado'];
                 } else {
                     $cantidad = $detalle['cantidad_reclamo'];
                     $valor = $detalle['cantidad_reclamo'] * $detalle['precioUnitario'];
                     $lote = $detalle['lote'];
                 }
                 ReclamoDetalle::create(['reclamo_id' => $reclamo->id, 'factura' => $factura['infoFactura']['numero_factura'], 'factura_fecha' => $factura['infoFactura']['fechaEmision'], 'producto_comercial' => $detalle['clase'], 'codigo_item' => $detalle['codigoPrincipal'], 'descripcion_item' => $detalle['descripcion'], 'precio_unitario' => $detalle['precioUnitario'], 'cantidad_original' => $detalle['cantidad'], 'cantidad_reclamo' => $cantidad, 'valor_reclamo' => $valor, 'lote_reclamo' => $lote]);
                 $listaFacturas[] = $factura['infoFactura']['numero_factura'];
             }
         }
     }
     $listaFacturas = array_unique($listaFacturas);
     foreach ($input->adjuntos as $adjunto) {
         $handlerAttachmentCore->addAttachmentToRequest($request_id, $adjunto['filetype']['filetype_id'], $adjunto['filename'], APP_ENVPATH, 'admin', 'Adjunto del cliente');
     }
     RequestMetadataCore::set($request_id, 'REC-CODIGO-CLIENTE', $input->cliente['codigo']);
     RequestMetadataCore::set($request_id, 'REC-NOMBRE-CLIENTE', $input->cliente['nombre']);
     RequestMetadataCore::set($request_id, 'REC-IDENTIFICACION-CLIENTE', $input->cliente['identificacion']);
     RequestMetadataCore::set($request_id, 'REC-EMAIL-CLIENTE', $input->cliente['email']);
     RequestMetadataCore::set($request_id, 'REC-EMAIL-CONTACTO', $input->contacto['email']);
     RequestMetadataCore::set($request_id, 'REC-CLASE', $clase->nombre);
     RequestMetadataCore::set($request_id, 'REC-NUMERO-FACTURA', implode(',', $listaFacturas));
     RequestMetadataCore::set($request_id, 'REC-NUMERO-REC-CLIENTE', $input->reclamo['num_interno']);
     RequestMetadataCore::set($request_id, 'REC-DESCRIPCION', $input->reclamo['descripcion']);
     RequestMetadataCore::set($request_id, 'REC-MONTO-DECISION', $input->reclamo['total_reclamo']);
     $request = EFRequest::find($request_id);
     echo $request->request_inner_id;
 }
 public static function ingresarRequisicionesYSolicitudes($datos_requisicion)
 {
     $handlerRequestCore = new \RequestCore();
     $handlerUserCore = new \UserCore();
     $handlerFlowCore = new \FlowCore();
     $handlerFlowSettingsCore = new \FlowSettingsCore();
     // Tomar cada una de las requisiciones del arreglo de entrada
     foreach ($datos_requisicion as $requisicion) {
         // Extraer datos de cabecera y líneas
         $cabecera = $requisicion['cabecera'];
         $lineas = $requisicion['lineas'];
         $clase = Clase::find($cabecera['id_clase']);
         // Validaciones
         $aprobadores = explode(',', $clase->aprobador_requisicion);
         if (count($aprobadores) == 0) {
             return 'No existen aprobadores para la clase "' . $clase->nombre . '". Imposible continuar';
         }
         // Si ya se estableció un solicitante y el valor no está vacío lo busco en EasyFlow
         // Si este último no existe en EF asignar el primer usuario aprobador como solicitante
         if (isset($cabecera['id_solicitante']) && !empty($cabecera['id_solicitante'])) {
             $solicitante = User::with('area')->find($cabecera['id_solicitante']);
         }
         if (!$solicitante) {
             return 'No existe el usuario en el BPM, imposible continuar';
         }
         // Paso personalizado para cada clase
         $flow = Flow::find(FLOW_ADQUISICIONES);
         $first_step = $flow->flow_first_step;
         if ($clase->primer_paso != null || $clase->primer_paso == '' || $clase->primer_paso != 0) {
             $step = Step::whereStepFlow($flow->flow_id)->whereStepId($clase->primer_paso)->first();
             if ($step) {
                 $first_step = $step->step_id;
             }
         }
         // Crear solicitud EF
         $request_flow = $flow->flow_id;
         $request_id = $handlerRequestCore->getLastGeneralRequestId() + 1;
         $inner_request_id = $handlerRequestCore->getLastGeneralRequestId($request_flow) + 1;
         if ($clase->id == 11) {
             $request_name = $request_description = 'Requisición - ' . $solicitante->user_name . ' - Hacienda: ' . ucwords(strtolower($cabecera['nombre_cc']));
         } else {
             $request_name = $request_description = 'Requisición - ' . $solicitante->user_name . ' - Departamento: ' . ucwords(strtolower($cabecera['nombre_cc']));
         }
         $request_createdby = $solicitante->user_id;
         // Si el aprobador de requisición está seteado como 'boss'
         if ($clase->aprobador_requisicion == 'boss') {
             // Si el usuario tiene seteado un aprobador
             if ($solicitante->user_reports_to != '') {
                 // Si este aprobador existe
                 $user_reports_to = User::find($solicitante->user_reports_to);
                 if ($user_reports_to) {
                     $request_assignedto = $user_reports_to->user_id;
                 } else {
                     $request_assignedto = $solicitante->user_id;
                 }
             } else {
                 $request_assignedto = $solicitante->user_id;
             }
         } else {
             $request_assignedto = $clase->aprobador_requisicion;
         }
         $request_start_step = $clase->primer_paso;
         $handlerRequestCore->createNewRequest($request_id, $inner_request_id, $request_flow, $request_name, $request_description, $request_createdby, $request_assignedto, $request_start_step);
         // Crear cabecera de requisición
         $requisicionCabecera = Requisicion::create(array('ef_id' => $request_id, 'ext_id' => isset($cabecera['ext_id']) ? $cabecera['ext_id'] : null, 'id_clase' => $clase->id, 'fecha_inicio' => date('Y-m-d H:i:s'), 'fecha_estimada_fin' => isset($cabecera['fecha_estimada_fin']) ? $cabecera['fecha_estimada_fin'] : null, 'fecha_fin' => null, 'id_solicitante' => $solicitante->user_id, 'nombre_solicitante' => $solicitante->user_name, 'id_cc' => isset($cabecera['id_cc']) ? $cabecera['id_cc'] : $solicitante->area->id, 'nombre_cc' => isset($cabecera['nombre_cc']) ? $cabecera['nombre_cc'] : $solicitante->area->nombre, 'descripcion' => isset($cabecera['descripcion']) ? $cabecera['descripcion'] : null, 'observaciones' => isset($cabecera['observaciones']) ? $cabecera['observaciones'] : null, 'prioridad' => isset($cabecera['prioridad']) ? $cabecera['prioridad'] : null, 'id_proveedor' => isset($cabecera['id_proveedor']) ? $cabecera['id_proveedor'] : null, 'estado' => 'I'));
         // Crear líneas de requisición
         foreach ($lineas as $linea) {
             RequisicionLinea::insert(array('id_requisicion' => $requisicionCabecera->id, 'ext_id' => isset($linea['ext_id']) ? $linea['ext_id'] : null, 'id_producto' => $linea['id_producto'], 'observacion_creador' => isset($linea['observacion_creador']) ? $linea['observacion_creador'] : null, 'cantidad' => $linea['cantidad'], 'estado' => 'I', 'bodega_haciendas' => isset($linea['bodega_haciendas']) ? $linea['bodega_haciendas'] : null, 'papel_cara' => isset($linea['papel_cara']) ? $linea['papel_cara'] : null, 'papel_laminas' => isset($linea['papel_laminas']) ? $linea['papel_laminas'] : null));
         }
         // Asignar variables de solicitud
         RequestMetadataCore::set($request_id, 'ADQ-CLASE', $clase->id);
         RequestMetadataCore::set($request_id, 'ADQ-ORIGEN', $clase->origen_requisicion);
         RequestMetadataCore::set($request_id, 'ADQ-TIPO', $clase->tipo);
         RequestMetadataCore::set($request_id, 'ADQ-RESPONSABLE-COMPRAS', $clase->responsable_compras);
         RequestMetadataCore::set($request_id, 'ADQ-RESPONSABLE-BODEGAS', $clase->responsable_bodegas);
         RequestMetadataCore::set($request_id, 'ADQ-APROBADOR-REQUISICION', $clase->aprobador_requisicion);
         RequestMetadataCore::set($request_id, 'ADQ-REQ-APROBADA', 'No');
         if ($clase->id == '1') {
             RequestMetadataCore::set($request_id, 'ADQ-APROBADOR-COTIZACION', $clase->aprobador_requisicion);
         } else {
             RequestMetadataCore::set($request_id, 'ADQ-APROBADOR-COTIZACION', $solicitante->user_id);
         }
         // Ruteo especial:
         // Papel: No requiere consolidación, sí requiere confirmación
         // Comerciales: No requiere consolidación, sí requiere confirmación
         $requiere_confirmacion = 'No';
         $requiere_consolidacion = 'Si';
         if ($requisicionCabecera->id_clase == 2) {
             $requiere_confirmacion = 'Si';
             $requiere_consolidacion = 'No';
         }
         if ($requisicionCabecera->id_clase == 3 || $requisicionCabecera->id_clase == 4 || $requisicionCabecera->id_clase == 5 || $requisicionCabecera->id_clase == 6) {
             $requiere_confirmacion = 'Si';
             $requiere_consolidacion = 'No';
         }
         RequestMetadataCore::set($request_id, 'ADQ-REQUIERE-CONFIRMACION', $requiere_confirmacion);
         RequestMetadataCore::set($request_id, 'ADQ-REQUIERE-CONSOLIDACION', $requiere_consolidacion);
         $requisicion = Requisicion::with('lineas.producto')->find($requisicionCabecera->id);
         // Establecer usuario responsable
         // Si son productos comerciales el responsable es el usuario creador
         if ($requisicion->id_clase == 3 || $requisicion->id_clase == 4 || $requisicion->id_clase == 5 || $requisicion->id_clase == 6) {
             $handlerRequestCore->updatePic($request_id, $solicitante->user_id);
         } else {
             $handlerRequestCore->updatePic($request_id, $clase->responsable_compras);
         }
         /*
         // Emitir aviso a aprobador si el usuario ha solicitado algún producto más de una vez en este mes 
         // (se excluyen haciendas)
         if($requisicion->id_clase != '1'){
         
             // Obtener los mails de los aprobadores
             $emails = [];
             $aprobadores_array = explode(',', $clase->aprobador_requisicion);
             foreach ($aprobadores_array as $id_aprobador) {
         
                 if($id_aprobador == 'boss') {
         
                     // Si el usuario tiene seteado un aprobador
                     if($solicitante->user_reports_to != ''){ 
         
                         // Si este aprobador existe
                         $user_reports_to = User::find($solicitante->user_reports_to);
                         if($user_reports_to) {
                             $id_aprobador = $user_reports_to->user_id;
                         } else {
                             $id_aprobador = $solicitante->user_id;
                         }
         
                     } else {
                         $id_aprobador = $solicitante->user_id;
                     }
         
                 }
         
                 $aprobador = User::find($id_aprobador);
                 $emails[] = ['email'=>$aprobador->user_email];
             }
         
         
             foreach ($requisicion->lineas as $linea) {
         
                 $lineas_producto = RequisicionLinea::whereHas('requisicion',function($query){
                                                         $curMonth = strtotime(date('Y-m'));
                                                         $query->where('fecha_inicio', '>=', date('Y-m', $curMonth))
                                                               ->where('fecha_inicio', '<', date('Y-m', strtotime('+ 1 month',$curMonth)));
                                                     })->where('id_producto', '=', $linea->id_producto)->count();
         
                 if($lineas_producto > 1){
                     $emailContentHtml =  'Estimado aprobador <br /><br />
                                      El usuario '.$solicitante->user_name.' ha creado la requisición '.$requisicion->id.', la cual contiene el producto '.$linea->producto->codigo.' - '.$linea->producto->nombre.'. Este producto
                                      ya ha sido solicitado previamente en este mes. Por favor realice la gestión adecuada para no comprar este producto de manera innecesaria.<br /><br />
                                      Atentamente <br />
                                      Novopan del Ecuador S.A.';
         
                     MailController::sendGeneralMail($emails, 'Requisición de producto repetido' , $emailContentHtml);
                 }
             }
         }
         */
     }
 }