/** * Remove the specified resource from storage. * * @param int $id * @return Response */ public function destroy($id) { $record = Clase::find($id)->delete(); return new AjaxResponse('success', ''); }
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 function getResults() { $input = Request::createFromGlobals(); // Tomar clases $clases = Reclamo::orderBy('reclamo_clase')->lists('reclamo_clase'); $clases = $clases->unique(); // Tomar regiones $regiones = Region::all(); // Get unfiltered requests $reclamos = Reclamo::where('id', '>', 0); // Apply filters $reclamos = $this->applyFilters($reclamos); $reclamos = $reclamos->get(); $records = []; foreach ($clases as $clase) { $obj_clase = Clase::find($clase); foreach ($regiones as $region) { $cliente_reclamos = $reclamos->filter(function ($reclamo) use($clase, $region) { return $reclamo->reclamo_clase == $clase && $reclamo->reclamo_region == $region->id; }); $numAbiertos = 0; $montoAbiertos = 0; $totalTimeArrayAbiertos = ['work' => 0, 'non-work' => 0, 'total' => 0]; $numCerrados = 0; $montoCerrados = 0; $totalTimeArrayCerrados = ['work' => 0, 'non-work' => 0, 'total' => 0]; foreach ($cliente_reclamos as $reclamo) { if ($reclamo->reclamo_fecha_fin != null && $reclamo->reclamo_fecha_fin != '' && $reclamo->reclamo_fecha_fin != '0000-00-00 00:00:00') { // Set end date $date_end = $reclamo->reclamo_fecha_fin; // Get times $timeArray = TimeController::getHours($reclamo->reclamo_fecha_inicio, $date_end); $totalTimeArrayCerrados['work'] += $timeArray['work']; $totalTimeArrayCerrados['non-work'] += $timeArray['non-work']; $totalTimeArrayCerrados['total'] += $timeArray['total']; $numCerrados++; $montoCerrados += $reclamo->nc_monto; } else { // Set end date $date_end = date('Y-m-d H:i:s'); // Get times $timeArray = TimeController::getHours($reclamo->reclamo_fecha_inicio, $date_end); $totalTimeArrayAbiertos['work'] += $timeArray['work']; $totalTimeArrayAbiertos['non-work'] += $timeArray['non-work']; $totalTimeArrayAbiertos['total'] += $timeArray['total']; $numAbiertos++; $montoAbiertos += $reclamo->nc_monto; } // Set end date $date_end = $reclamo->reclamo_fecha_fin ? $reclamo->reclamo_fecha_fin : date('Y-m-d H:i:s'); // Get times $timeArray = TimeController::getHours($reclamo->reclamo_fecha_inicio, $date_end); } $duracionAbiertos = 0; $duracionCerrados = 0; if ($input->duration == 'calendar') { if ($numAbiertos > 0) { $duracionAbiertos = $totalTimeArrayAbiertos['total'] / $numAbiertos / 24; } if ($numCerrados > 0) { $duracionCerrados = $totalTimeArrayCerrados['total'] / $numCerrados / 24; } } else { if ($numAbiertos > 0) { $duracionAbiertos = $totalTimeArrayAbiertos['work'] / $numAbiertos / 8; } if ($numCerrados > 0) { $duracionCerrados = $totalTimeArrayCerrados['work'] / $numCerrados / 8; } } if ($numAbiertos + $numCerrados > 0) { $records[] = ['nombre' => $obj_clase->nombre . ' - ' . $region->nombre, 'num_abiertos' => $numAbiertos, 'monto_abiertos' => $montoAbiertos, 'duracion_abiertos' => $duracionAbiertos, 'num_cerrados' => $numCerrados, 'monto_cerrados' => $montoCerrados, 'duracion_cerrados' => $duracionCerrados, 'total' => $numAbiertos + $numCerrados]; } } } // Get the records return $records; }