Esempio n. 1
0
function agregarNotaCreditoReclamo($reclamo_id, $tipo, $numero, $fecha, $monto, $concepto, $rma, $pedido, $url)
{
    LogController::logWebServiceIn('Llamada a web service: ' . __FILE__ . ' - ' . __FUNCTION__, compact('reclamo_id', 'tipo', 'numero', 'fecha', 'monto', 'concepto', 'rma', 'pedido', 'url'));
    try {
        $reclamo = Reclamo::find($reclamo_id);
        $nc = NotaCredito::create(['reclamo_id' => $reclamo_id, 'tipo' => $tipo, 'numero' => $numero, 'fecha' => $fecha, 'monto' => $monto, 'concepto' => $concepto, 'rma' => $rma, 'pedido' => $pedido]);
        if ($url) {
            $urlArray = explode('.', $url);
            $filename = APP_TMPPATH . "tmpdoc." . end($urlArray);
            $url_file = fopen($url, 'r');
            if ($url_file) {
                file_put_contents($filename, $url_file);
                $descripcion = $tipo == 'nc' ? 'Nota de Crédito - ' . $numero : 'Nota de Débito - ' . $numero;
                (new \AttachmentCore())->addAttachmentToRequest($reclamo->ef_id, \FlowSettingsCore::get(FLOW_RECLAMOS, 'REC_ATT_ARCHIVO_NC'), $filename, APP_ENVPATH, 'admin', 'Nota de crédito / débito subida desde el módulo externo');
            }
        }
    } catch (Exception $e) {
        LogController::logWebServiceIn('Error de webservice: ' . $e->getMessage());
        return 'Error: ' . $e->getMessage();
    }
    return '';
}
Esempio n. 2
0
 public function removeAccion($id_reclamo, $id_accion)
 {
     $reclamo = Reclamo::find($id_reclamo);
     $reclamo->reclamo_acciones()->detach($id_accion);
     return new AjaxResponse('success', '');
 }
Esempio n. 3
0
 public function updateReclamo()
 {
     $input = Request::createFromGlobals();
     $flow = Flow::find(FLOW_RECLAMOS);
     $reclamo = Reclamo::find($input->id);
     $reclamo->update(['reclamo_clase' => $input->reclamo_clase, 'reclamo_region' => $input->reclamo_region, 'reclamo_descripcion' => $input->reclamo_descripcion, 'contacto_nombre' => $input->contacto_nombre, 'contacto_telefono' => $input->contacto_telefono, 'contacto_email' => $input->contacto_email, 'visita_requiere' => $input->visita_requiere, 'visita_descripcion' => $input->visita_descripcion, 'visita_responsable' => $input->visita_responsable, 'visita_fecha' => $input->visita_fecha, 'analisis_descripcion' => $input->analisis_descripcion, 'analisis_responsable' => $input->analisis_responsable, 'analisis_fecha' => $input->analisis_fecha, 'decision_decision' => $input->decision_decision, 'decision_monto' => $input->decision_monto, 'decision_descripcion' => $input->decision_descripcion, 'decision_responsable' => $input->decision_responsable, 'decision_fecha' => $input->decision_fecha, 'nc_descripcion' => $input->nc_descripcion, 'nc_responsable' => $input->nc_responsable, 'nc_fecha' => $input->nc_fecha]);
     // Actualizar cantidad y lote de líneas
     foreach ($input->lineas as $linea) {
         ReclamoDetalle::find($linea['id'])->update(['cantidad_reclamo' => $linea['cantidad_reclamo'], 'lote_reclamo' => $linea['lote_reclamo']]);
     }
     // Traer usuario responsable
     $responsable_id = $flow->flow_administrator;
     $rules = json_decode(\FlowSettingsCore::get(FLOW_RECLAMOS, "REC_PRO_REGLAS_RESPONSABLE"));
     foreach ($rules as $clase) {
         if ($clase->clase == $reclamo->reclamo_clase) {
             foreach ($clase->responsables as $responsable) {
                 if ($responsable->region == $reclamo->reclamo_region) {
                     $responsable_id = $responsable->responsable;
                     break;
                 }
             }
         }
     }
     // Traer usuario aprobador
     $aprobador_id = $flow->flow_administrator;
     $monto = !empty($reclamo->decision_monto) ? $reclamo->decision_monto : 0;
     $rules = json_decode(\FlowSettingsCore::get(FLOW_RECLAMOS, "REC_PRO_REGLAS_MONTOS"));
     foreach ($rules as $clase) {
         if ($clase->clase == $reclamo->reclamo_clase) {
             foreach ($clase->regiones as $region) {
                 if ($region->region == $reclamo->reclamo_region) {
                     foreach ($region->aprobadores as $aprobador) {
                         if ($monto >= $aprobador->monto) {
                             $aprobador_id = $aprobador->aprobador;
                         }
                     }
                 }
             }
         }
     }
     \RequestMetadataCore::set($reclamo->ef_id, "REC-USUARIO-SEGUIMIENTO", $responsable_id);
     \RequestMetadataCore::set($reclamo->ef_id, "REC-USUARIO-APROBACION", $aprobador_id);
 }